diff --git a/sdk/network/azure-mgmt-network/_meta.json b/sdk/network/azure-mgmt-network/_meta.json index 565ce3e66a61..24c294578566 100644 --- a/sdk/network/azure-mgmt-network/_meta.json +++ b/sdk/network/azure-mgmt-network/_meta.json @@ -1,11 +1,11 @@ { "autorest": "3.9.2", "use": [ - "@autorest/python@6.1.9", + "@autorest/python@6.1.11", "@autorest/modelerfour@4.24.3" ], - "commit": "3bc1226e256cc298617ec2a7da88a5b4f97eba0e", + "commit": "facb3531d9e7c5ff7d47de5890d05277f685cd64", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest_command": "autorest specification/network/resource-manager/readme.md --python --python-sdks-folder=/home/vsts/work/1/azure-sdk-for-python/sdk --use=@autorest/python@6.1.9 --use=@autorest/modelerfour@4.24.3 --version=3.9.2 --version-tolerant=False", + "autorest_command": "autorest specification/network/resource-manager/readme.md --python --python-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-python/sdk --use=@autorest/python@6.1.11 --use=@autorest/modelerfour@4.24.3 --version=3.9.2 --version-tolerant=False", "readme": "specification/network/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/_network_management_client.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/_network_management_client.py index 8142e56a614a..b69f0de80533 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/_network_management_client.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/_network_management_client.py @@ -72,6 +72,10 @@ class NetworkManagementClient(NetworkManagementClientOperationsMixin, MultiApiCl 'nsp_access_rules_reconcile': '2021-02-01-preview', 'nsp_association_reconcile': '2021-02-01-preview', 'nsp_associations': '2021-02-01-preview', + 'nsp_link_reconcile': '2021-02-01-preview', + 'nsp_link_reference_reconcile': '2021-02-01-preview', + 'nsp_link_references': '2021-02-01-preview', + 'nsp_links': '2021-02-01-preview', 'nsp_profiles': '2021-02-01-preview', 'p2_svpn_server_configurations': '2019-07-01', 'perimeter_associable_resource_types': '2021-02-01-preview', @@ -5092,6 +5096,62 @@ def nsp_associations(self): self._config.api_version = api_version return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property + def nsp_link_reconcile(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinkReconcileOperations` + """ + api_version = self._get_api_version('nsp_link_reconcile') + if api_version == '2021-02-01-preview': + from .v2021_02_01_preview.operations import NspLinkReconcileOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_link_reconcile'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def nsp_link_reference_reconcile(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinkReferenceReconcileOperations` + """ + api_version = self._get_api_version('nsp_link_reference_reconcile') + if api_version == '2021-02-01-preview': + from .v2021_02_01_preview.operations import NspLinkReferenceReconcileOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_link_reference_reconcile'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def nsp_link_references(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinkReferencesOperations` + """ + api_version = self._get_api_version('nsp_link_references') + if api_version == '2021-02-01-preview': + from .v2021_02_01_preview.operations import NspLinkReferencesOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_link_references'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def nsp_links(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinksOperations` + """ + api_version = self._get_api_version('nsp_links') + if api_version == '2021-02-01-preview': + from .v2021_02_01_preview.operations import NspLinksOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_links'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property def nsp_profiles(self): """Instance depends on the API version: diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/aio/_network_management_client.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/aio/_network_management_client.py index 0b8c66f0ded2..bf0c2a30770e 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/aio/_network_management_client.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/aio/_network_management_client.py @@ -72,6 +72,10 @@ class NetworkManagementClient(NetworkManagementClientOperationsMixin, MultiApiCl 'nsp_access_rules_reconcile': '2021-02-01-preview', 'nsp_association_reconcile': '2021-02-01-preview', 'nsp_associations': '2021-02-01-preview', + 'nsp_link_reconcile': '2021-02-01-preview', + 'nsp_link_reference_reconcile': '2021-02-01-preview', + 'nsp_link_references': '2021-02-01-preview', + 'nsp_links': '2021-02-01-preview', 'nsp_profiles': '2021-02-01-preview', 'p2_svpn_server_configurations': '2019-07-01', 'perimeter_associable_resource_types': '2021-02-01-preview', @@ -5092,6 +5096,62 @@ def nsp_associations(self): self._config.api_version = api_version return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property + def nsp_link_reconcile(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinkReconcileOperations` + """ + api_version = self._get_api_version('nsp_link_reconcile') + if api_version == '2021-02-01-preview': + from ..v2021_02_01_preview.aio.operations import NspLinkReconcileOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_link_reconcile'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def nsp_link_reference_reconcile(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinkReferenceReconcileOperations` + """ + api_version = self._get_api_version('nsp_link_reference_reconcile') + if api_version == '2021-02-01-preview': + from ..v2021_02_01_preview.aio.operations import NspLinkReferenceReconcileOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_link_reference_reconcile'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def nsp_link_references(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinkReferencesOperations` + """ + api_version = self._get_api_version('nsp_link_references') + if api_version == '2021-02-01-preview': + from ..v2021_02_01_preview.aio.operations import NspLinkReferencesOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_link_references'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def nsp_links(self): + """Instance depends on the API version: + + * 2021-02-01-preview: :class:`NspLinksOperations` + """ + api_version = self._get_api_version('nsp_links') + if api_version == '2021-02-01-preview': + from ..v2021_02_01_preview.aio.operations import NspLinksOperations as OperationClass + else: + raise ValueError("API version {} does not have operation group 'nsp_links'".format(api_version)) + self._config.api_version = api_version + return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property def nsp_profiles(self): """Instance depends on the API version: diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/aio/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/aio/operations/_operations.py index 972df8e8441d..f5a044d2b41a 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/aio/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/aio/operations/_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( @@ -576,10 +576,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -649,10 +656,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -1438,10 +1452,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -1949,10 +1970,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2437,10 +2465,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2520,10 +2555,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2603,10 +2645,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2679,10 +2728,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2752,10 +2808,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2846,10 +2909,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3328,10 +3398,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3404,10 +3481,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3889,10 +3973,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3965,10 +4056,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4050,10 +4148,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4131,10 +4236,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4692,10 +4804,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4769,10 +4888,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5275,10 +5401,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5760,10 +5893,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5836,10 +5976,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6311,10 +6458,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6384,10 +6538,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6882,10 +7043,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6977,10 +7145,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7462,10 +7637,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7538,10 +7720,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8051,10 +8240,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8539,10 +8735,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9472,10 +9675,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10485,10 +10695,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/operations/_operations.py index ae428e5c95af..f32280d71c22 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2015_06_15/operations/_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.exceptions import ( ClientAuthenticationError, @@ -3205,10 +3205,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3277,10 +3284,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4062,10 +4076,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4573,10 +4594,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5061,10 +5089,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5144,10 +5179,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5227,10 +5269,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5303,10 +5352,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5376,10 +5432,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5470,10 +5533,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5949,10 +6019,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6024,10 +6101,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6503,10 +6587,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6578,10 +6669,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6662,10 +6760,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6742,10 +6847,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7303,10 +7415,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7380,10 +7499,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7885,10 +8011,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8364,10 +8497,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8439,10 +8579,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8908,10 +9055,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8980,10 +9134,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9476,10 +9637,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9571,10 +9739,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10050,10 +10225,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10125,10 +10307,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10633,10 +10822,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -11121,10 +11317,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12054,10 +12257,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13065,10 +13275,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/aio/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/aio/operations/_operations.py index 8967a76e62d8..9ed2b9bc8857 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/aio/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/aio/operations/_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( @@ -228,10 +228,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -309,10 +316,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -849,10 +863,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -925,10 +946,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -1644,10 +1672,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -1717,10 +1752,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2628,10 +2670,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3139,10 +3188,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4123,10 +4179,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4196,10 +4259,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4290,10 +4360,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4772,10 +4849,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4848,10 +4932,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5334,10 +5425,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5411,10 +5509,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5917,10 +6022,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6318,10 +6430,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6391,10 +6510,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8808,10 +8934,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9293,10 +9426,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9369,10 +9509,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9844,10 +9991,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9917,10 +10071,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10415,10 +10576,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10510,10 +10678,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10995,10 +11170,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -11071,10 +11253,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -11647,10 +11836,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12159,10 +12355,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12647,10 +12850,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14151,10 +14361,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14870,10 +15087,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/operations/_operations.py index 5c6a9631ef0f..51e96d0d616b 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_09_01/operations/_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.exceptions import ( ClientAuthenticationError, @@ -3900,10 +3900,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3980,10 +3987,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4514,10 +4528,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4589,10 +4610,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5303,10 +5331,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5375,10 +5410,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6282,10 +6324,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6793,10 +6842,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7775,10 +7831,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7848,10 +7911,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7942,10 +8012,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8421,10 +8498,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8496,10 +8580,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8982,10 +9073,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9059,10 +9157,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9564,10 +9669,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9962,10 +10074,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10034,10 +10153,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12448,10 +12574,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12927,10 +13060,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13002,10 +13142,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13471,10 +13618,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13543,10 +13697,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14039,10 +14200,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14134,10 +14302,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14613,10 +14788,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14688,10 +14870,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -15259,10 +15448,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -15771,10 +15967,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -16259,10 +16462,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -17763,10 +17973,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -18480,10 +18697,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/aio/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/aio/operations/_operations.py index 227364ca13e8..af05360a09ac 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/aio/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/aio/operations/_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( @@ -240,10 +240,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -321,10 +328,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -861,10 +875,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -937,10 +958,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -1656,10 +1684,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -1729,10 +1764,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2640,10 +2682,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3151,10 +3200,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4135,10 +4191,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4208,10 +4271,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4302,10 +4372,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4784,10 +4861,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4860,10 +4944,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5346,10 +5437,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5423,10 +5521,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5929,10 +6034,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6330,10 +6442,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6403,10 +6522,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8820,10 +8946,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9305,10 +9438,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9381,10 +9521,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10081,10 +10228,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10154,10 +10308,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10895,10 +11056,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -11370,10 +11538,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -11443,10 +11618,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -11941,10 +12123,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12034,10 +12223,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12129,10 +12325,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12614,10 +12817,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12690,10 +12900,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13266,10 +13483,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13778,10 +14002,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14266,10 +14497,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -15770,10 +16008,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -16489,10 +16734,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/operations/_operations.py index 484317deeccd..fcc47a8cfcf8 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2016_12_01/operations/_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.exceptions import ( ClientAuthenticationError, @@ -4270,10 +4270,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4350,10 +4357,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4884,10 +4898,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4959,10 +4980,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5673,10 +5701,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5745,10 +5780,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6652,10 +6694,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7163,10 +7212,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8145,10 +8201,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8218,10 +8281,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8312,10 +8382,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8791,10 +8868,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -8866,10 +8950,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9352,10 +9443,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9429,10 +9527,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -9934,10 +10039,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10332,10 +10444,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -10404,10 +10523,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -12818,10 +12944,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13297,10 +13430,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -13372,10 +13512,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14069,10 +14216,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14141,10 +14295,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -14875,10 +15036,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -15344,10 +15512,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -15416,10 +15591,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -15912,10 +16094,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -16005,10 +16194,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -16100,10 +16296,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -16579,10 +16782,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -16654,10 +16864,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -17225,10 +17442,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -17737,10 +17961,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -18225,10 +18456,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -19729,10 +19967,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -20446,10 +20691,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_03_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_03_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_03_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_03_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_06_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_06_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_06_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_06_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_10_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_10_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_10_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2017_10_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_01_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_01_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_01_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_01_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_02_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_02_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_02_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_02_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_04_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_04_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_04_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_04_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_06_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_06_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_06_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_06_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_07_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_07_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_07_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_07_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_08_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_08_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_08_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_08_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_10_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_10_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_10_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_10_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_11_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_11_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_11_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_11_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_12_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_12_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_12_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2018_12_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_02_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_02_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_02_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_02_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_04_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_04_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_04_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_04_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_06_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_06_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_06_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_06_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_07_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_07_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_07_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_07_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_08_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_08_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_08_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_08_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_09_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_09_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_09_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_09_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_11_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_11_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_11_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_11_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_12_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_12_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_12_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2019_12_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_03_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_03_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_03_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_03_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_04_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_04_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_04_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_04_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_05_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_05_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_05_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_05_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_06_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_06_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_06_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_06_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_07_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_07_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_07_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_07_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_08_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_08_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_08_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_08_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_11_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_11_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_11_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2020_11_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_metadata.json b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_metadata.json index 7758d91a3390..43279c04f29b 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_metadata.json +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_metadata.json @@ -120,6 +120,10 @@ "nsp_associations": "NspAssociationsOperations", "nsp_association_reconcile": "NspAssociationReconcileOperations", "perimeter_associable_resource_types": "PerimeterAssociableResourceTypesOperations", - "nsp_access_rules_reconcile": "NspAccessRulesReconcileOperations" + "nsp_access_rules_reconcile": "NspAccessRulesReconcileOperations", + "nsp_links": "NspLinksOperations", + "nsp_link_reconcile": "NspLinkReconcileOperations", + "nsp_link_references": "NspLinkReferencesOperations", + "nsp_link_reference_reconcile": "NspLinkReferenceReconcileOperations" } } \ No newline at end of file diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_network_management_client.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_network_management_client.py index 7b1bcbd89f0c..29573d977f8c 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_network_management_client.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_network_management_client.py @@ -34,6 +34,10 @@ NspAccessRulesReconcileOperations, NspAssociationReconcileOperations, NspAssociationsOperations, + NspLinkReconcileOperations, + NspLinkReferenceReconcileOperations, + NspLinkReferencesOperations, + NspLinksOperations, NspProfilesOperations, PerimeterAssociableResourceTypesOperations, SecurityAdminConfigurationsOperations, @@ -122,6 +126,17 @@ class NetworkManagementClient: # pylint: disable=client-accepts-api-version-key :ivar nsp_access_rules_reconcile: NspAccessRulesReconcileOperations operations :vartype nsp_access_rules_reconcile: azure.mgmt.network.v2021_02_01_preview.operations.NspAccessRulesReconcileOperations + :ivar nsp_links: NspLinksOperations operations + :vartype nsp_links: azure.mgmt.network.v2021_02_01_preview.operations.NspLinksOperations + :ivar nsp_link_reconcile: NspLinkReconcileOperations operations + :vartype nsp_link_reconcile: + azure.mgmt.network.v2021_02_01_preview.operations.NspLinkReconcileOperations + :ivar nsp_link_references: NspLinkReferencesOperations operations + :vartype nsp_link_references: + azure.mgmt.network.v2021_02_01_preview.operations.NspLinkReferencesOperations + :ivar nsp_link_reference_reconcile: NspLinkReferenceReconcileOperations operations + :vartype nsp_link_reference_reconcile: + azure.mgmt.network.v2021_02_01_preview.operations.NspLinkReferenceReconcileOperations :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: The subscription credentials which uniquely identify the Microsoft @@ -214,6 +229,16 @@ def __init__( self.nsp_access_rules_reconcile = NspAccessRulesReconcileOperations( self._client, self._config, self._serialize, self._deserialize ) + self.nsp_links = NspLinksOperations(self._client, self._config, self._serialize, self._deserialize) + self.nsp_link_reconcile = NspLinkReconcileOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.nsp_link_references = NspLinkReferencesOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.nsp_link_reference_reconcile = NspLinkReferenceReconcileOperations( + self._client, self._config, self._serialize, self._deserialize + ) def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse: """Runs the network request through the client's chained policies. diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/_network_management_client.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/_network_management_client.py index 8421df0ef50b..bc22733d71ce 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/_network_management_client.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/_network_management_client.py @@ -34,6 +34,10 @@ NspAccessRulesReconcileOperations, NspAssociationReconcileOperations, NspAssociationsOperations, + NspLinkReconcileOperations, + NspLinkReferenceReconcileOperations, + NspLinkReferencesOperations, + NspLinksOperations, NspProfilesOperations, PerimeterAssociableResourceTypesOperations, SecurityAdminConfigurationsOperations, @@ -124,6 +128,17 @@ class NetworkManagementClient: # pylint: disable=client-accepts-api-version-key :ivar nsp_access_rules_reconcile: NspAccessRulesReconcileOperations operations :vartype nsp_access_rules_reconcile: azure.mgmt.network.v2021_02_01_preview.aio.operations.NspAccessRulesReconcileOperations + :ivar nsp_links: NspLinksOperations operations + :vartype nsp_links: azure.mgmt.network.v2021_02_01_preview.aio.operations.NspLinksOperations + :ivar nsp_link_reconcile: NspLinkReconcileOperations operations + :vartype nsp_link_reconcile: + azure.mgmt.network.v2021_02_01_preview.aio.operations.NspLinkReconcileOperations + :ivar nsp_link_references: NspLinkReferencesOperations operations + :vartype nsp_link_references: + azure.mgmt.network.v2021_02_01_preview.aio.operations.NspLinkReferencesOperations + :ivar nsp_link_reference_reconcile: NspLinkReferenceReconcileOperations operations + :vartype nsp_link_reference_reconcile: + azure.mgmt.network.v2021_02_01_preview.aio.operations.NspLinkReferenceReconcileOperations :param credential: Credential needed for the client to connect to Azure. Required. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: The subscription credentials which uniquely identify the Microsoft @@ -216,6 +231,16 @@ def __init__( self.nsp_access_rules_reconcile = NspAccessRulesReconcileOperations( self._client, self._config, self._serialize, self._deserialize ) + self.nsp_links = NspLinksOperations(self._client, self._config, self._serialize, self._deserialize) + self.nsp_link_reconcile = NspLinkReconcileOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.nsp_link_references = NspLinkReferencesOperations( + self._client, self._config, self._serialize, self._deserialize + ) + self.nsp_link_reference_reconcile = NspLinkReferenceReconcileOperations( + self._client, self._config, self._serialize, self._deserialize + ) def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncHttpResponse]: """Runs the network request through the client's chained policies. diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/__init__.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/__init__.py index 653c730d77be..fd41b7b45671 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/__init__.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/__init__.py @@ -30,6 +30,10 @@ from ._operations import NspAssociationReconcileOperations from ._operations import PerimeterAssociableResourceTypesOperations from ._operations import NspAccessRulesReconcileOperations +from ._operations import NspLinksOperations +from ._operations import NspLinkReconcileOperations +from ._operations import NspLinkReferencesOperations +from ._operations import NspLinkReferenceReconcileOperations from ._patch import __all__ as _patch_all from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import @@ -60,6 +64,10 @@ "NspAssociationReconcileOperations", "PerimeterAssociableResourceTypesOperations", "NspAccessRulesReconcileOperations", + "NspLinksOperations", + "NspLinkReconcileOperations", + "NspLinkReferencesOperations", + "NspLinkReferenceReconcileOperations", ] __all__.extend([p for p in _patch_all if p not in __all__]) _patch_sdk() diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/_operations.py index 583030b120d8..55310dabc3de 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/aio/operations/_operations.py @@ -8,7 +8,7 @@ # -------------------------------------------------------------------------- import sys from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( @@ -78,6 +78,15 @@ build_nsp_associations_delete_request, build_nsp_associations_get_request, build_nsp_associations_list_request, + build_nsp_link_reconcile_post_request, + build_nsp_link_reference_reconcile_post_request, + build_nsp_link_references_delete_request, + build_nsp_link_references_get_request, + build_nsp_link_references_list_request, + build_nsp_links_create_or_update_request, + build_nsp_links_delete_request, + build_nsp_links_get_request, + build_nsp_links_list_request, build_nsp_profiles_create_or_update_request, build_nsp_profiles_delete_request, build_nsp_profiles_get_request, @@ -570,10 +579,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -658,10 +674,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2184,10 +2207,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -2920,10 +2950,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3038,10 +3075,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3434,10 +3478,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -3862,10 +3913,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4301,10 +4359,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -4697,10 +4762,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5125,10 +5197,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5810,10 +5889,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5899,10 +5985,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6289,10 +6382,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -6709,10 +6809,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7155,10 +7262,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7348,10 +7462,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -7480,3 +7601,917 @@ async def post( return deserialized post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}/reconcile"} # type: ignore + + +class NspLinksOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.aio.NetworkManagementClient`'s + :attr:`nsp_links` attribute. + """ + + models = _models + + 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") + + @distributed_trace_async + async def get( + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> _models.NspLink: + """Gets the specified NSP link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLink] + + request = build_nsp_links_get_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.get.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("NspLink", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore + + @overload + async def create_or_update( + self, + resource_group_name: str, + network_security_perimeter_name: str, + link_name: str, + parameters: _models.NspLink, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NspLink: + """Creates or updates NSP link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :param parameters: Parameters that hold the NspLink resource to be created/updated. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def create_or_update( + self, + resource_group_name: str, + network_security_perimeter_name: str, + link_name: str, + parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NspLink: + """Creates or updates NSP link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :param parameters: Parameters that hold the NspLink resource to be created/updated. Required. + :type parameters: IO + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def create_or_update( + self, + resource_group_name: str, + network_security_perimeter_name: str, + link_name: str, + parameters: Union[_models.NspLink, IO], + **kwargs: Any + ) -> _models.NspLink: + """Creates or updates NSP link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :param parameters: Parameters that hold the NspLink resource to be created/updated. Is either a + model type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink or IO + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLink] + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "NspLink") + + request = build_nsp_links_create_or_update_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.create_or_update.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + 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) + + if response.status_code == 200: + deserialized = self._deserialize("NspLink", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("NspLink", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore + + async def _delete_initial( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> None: + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_nsp_links_delete_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self._delete_initial.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["location"] = self._deserialize("str", response.headers.get("location")) + + if cls: + return cls(pipeline_response, None, response_headers) + + _delete_initial.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore + + @distributed_trace_async + async def begin_delete( + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes an NSP Link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for + this operation to not poll, or pass in your own initialized polling object for a personal + polling strategy. + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no + Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + polling = kwargs.pop("polling", True) # type: Union[bool, AsyncPollingMethod] + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token = kwargs.pop("continuation_token", None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( # type: ignore + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) + + if polling is True: + polling_method = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) # type: AsyncPollingMethod + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore + + @distributed_trace + def list( + self, + resource_group_name: str, + network_security_perimeter_name: str, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.NspLink"]: + """Lists the NSP Link resources in the specified network security perimeter. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NspLink or the result of cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspLink] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLinkListResult] + + error_map = { + 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_nsp_links_list_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("NspLinkListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links"} # type: ignore + + +class NspLinkReconcileOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.aio.NetworkManagementClient`'s + :attr:`nsp_link_reconcile` attribute. + """ + + models = _models + + 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") + + @distributed_trace_async + async def post( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> None: + """Reconcile NSP link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_nsp_link_reconcile_post_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.post.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + if cls: + return cls(pipeline_response, None, {}) + + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}/reconcile"} # type: ignore + + +class NspLinkReferencesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.aio.NetworkManagementClient`'s + :attr:`nsp_link_references` attribute. + """ + + models = _models + + 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") + + @distributed_trace_async + async def get( + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any + ) -> _models.NspLinkReference: + """Gets the specified NSP linkReference resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_reference_name: The name of the NSP linkReference. Required. + :type link_reference_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NspLinkReference or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLinkReference + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLinkReference] + + request = build_nsp_link_references_get_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_reference_name=link_reference_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.get.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("NspLinkReference", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}"} # type: ignore + + async def _delete_initial( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any + ) -> None: + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_nsp_link_references_delete_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_reference_name=link_reference_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self._delete_initial.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["location"] = self._deserialize("str", response.headers.get("location")) + + if cls: + return cls(pipeline_response, None, response_headers) + + _delete_initial.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}"} # type: ignore + + @distributed_trace_async + async def begin_delete( + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any + ) -> AsyncLROPoller[None]: + """Deletes an NSP LinkReference resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_reference_name: The name of the NSP linkReference. Required. + :type link_reference_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be AsyncARMPolling. Pass in False for + this operation to not poll, or pass in your own initialized polling object for a personal + polling strategy. + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no + Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + polling = kwargs.pop("polling", True) # type: Union[bool, AsyncPollingMethod] + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token = kwargs.pop("continuation_token", None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( # type: ignore + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_reference_name=link_reference_name, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) + + if polling is True: + polling_method = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) # type: AsyncPollingMethod + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}"} # type: ignore + + @distributed_trace + def list( + self, + resource_group_name: str, + network_security_perimeter_name: str, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> AsyncIterable["_models.NspLinkReference"]: + """Lists the NSP LinkReference resources in the specified network security perimeter. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NspLinkReference or the result of cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspLinkReference] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLinkReferenceListResult] + + error_map = { + 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_nsp_link_references_list_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("NspLinkReferenceListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences"} # type: ignore + + +class NspLinkReferenceReconcileOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.aio.NetworkManagementClient`'s + :attr:`nsp_link_reference_reconcile` attribute. + """ + + models = _models + + 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") + + @distributed_trace_async + async def post( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any + ) -> None: + """Reconcile NSP linkReference resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_reference_name: The name of the NSP linkReference. Required. + :type link_reference_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_nsp_link_reference_reconcile_post_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_reference_name=link_reference_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.post.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + if cls: + return cls(pipeline_response, None, {}) + + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}/reconcile"} # type: ignore diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/__init__.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/__init__.py index 5bf3287df5a8..f54e59a7b209 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/__init__.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/__init__.py @@ -56,6 +56,10 @@ from ._models_py3 import NspAccessRuleListResult from ._models_py3 import NspAssociation from ._models_py3 import NspAssociationsListResult +from ._models_py3 import NspLink +from ._models_py3 import NspLinkListResult +from ._models_py3 import NspLinkReference +from ._models_py3 import NspLinkReferenceListResult from ._models_py3 import NspProfile from ._models_py3 import NspProfileListResult from ._models_py3 import PerimeterAssociableResource @@ -90,6 +94,7 @@ from ._network_management_client_enums import GroupConnectivity from ._network_management_client_enums import IsGlobal from ._network_management_client_enums import MembershipType +from ._network_management_client_enums import NspLinkStatus from ._network_management_client_enums import NspProvisioningState from ._network_management_client_enums import ProvisioningState from ._network_management_client_enums import SecurityConfigurationRuleAccess @@ -153,6 +158,10 @@ "NspAccessRuleListResult", "NspAssociation", "NspAssociationsListResult", + "NspLink", + "NspLinkListResult", + "NspLinkReference", + "NspLinkReferenceListResult", "NspProfile", "NspProfileListResult", "PerimeterAssociableResource", @@ -186,6 +195,7 @@ "GroupConnectivity", "IsGlobal", "MembershipType", + "NspLinkStatus", "NspProvisioningState", "ProvisioningState", "SecurityConfigurationRuleAccess", diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_models_py3.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_models_py3.py index 627fa8e5c378..e192e2c4960b 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_models_py3.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_models_py3.py @@ -3696,6 +3696,282 @@ def __init__( self.next_link = next_link +class NspLink(ProxyResource): # pylint: disable=too-many-instance-attributes + """The network security perimeter link resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :ivar etag: A unique read-only string that changes whenever the resource is updated. + :vartype etag: str + :ivar provisioning_state: The provisioning state of the NSP Link resource. Known values are: + "Succeeded", "Creating", "Updating", "Deleting", "Accepted", and "Failed". + :vartype provisioning_state: str or + ~azure.mgmt.network.v2021_02_01_preview.models.NspProvisioningState + :ivar auto_approved_remote_perimeter_resource_id: Perimeter ARM Id for the remote NSP with + which the link gets created in Auto-approval mode. It should be used when the NSP admin have + Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP + resource. + :vartype auto_approved_remote_perimeter_resource_id: str + :ivar remote_perimeter_guid: Remote NSP Guid with which the link gets created. + :vartype remote_perimeter_guid: str + :ivar local_inbound_profiles: Local Inbound profile names to which Inbound is allowed. Use ['\ + *'] to allow inbound to all profiles. It's default value is ['*\ ']. + :vartype local_inbound_profiles: list[str] + :ivar local_outbound_profiles: Local Outbound profile names from which Outbound is allowed. In + current version, it is readonly property and it's value is set to ['*'] to allow outbound from + all profiles. In later version, user will be able to modify it. + :vartype local_outbound_profiles: list[str] + :ivar remote_inbound_profiles: Remote Inbound profile names to which Inbound is allowed. Use + ['\ *'] to allow inbound to all profiles. This property can only be updated in auto-approval + mode. It's default value is ['*\ ']. + :vartype remote_inbound_profiles: list[str] + :ivar remote_outbound_profiles: Remote Outbound profile names from which Outbound is allowed. + In current version, it is readonly property and it's value is set to ['*'] to allow outbound + from all profiles. In later version, user will be able to modify it. + :vartype remote_outbound_profiles: list[str] + :ivar description: A message passed to the owner of the remote NSP link resource with this + connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted + to 140 chars. + :vartype description: str + :ivar status: The NSP link state. Known values are: "Approved", "Pending", "Rejected", and + "Disconnected". + :vartype status: str or ~azure.mgmt.network.v2021_02_01_preview.models.NspLinkStatus + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "etag": {"readonly": True}, + "provisioning_state": {"readonly": True}, + "remote_perimeter_guid": {"readonly": True}, + "local_inbound_profiles": {"unique": True}, + "local_outbound_profiles": {"readonly": True, "unique": True}, + "remote_inbound_profiles": {"unique": True}, + "remote_outbound_profiles": {"readonly": True, "unique": True}, + "status": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "etag": {"key": "etag", "type": "str"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "auto_approved_remote_perimeter_resource_id": { + "key": "properties.autoApprovedRemotePerimeterResourceId", + "type": "str", + }, + "remote_perimeter_guid": {"key": "properties.remotePerimeterGuid", "type": "str"}, + "local_inbound_profiles": {"key": "properties.localInboundProfiles", "type": "[str]"}, + "local_outbound_profiles": {"key": "properties.localOutboundProfiles", "type": "[str]"}, + "remote_inbound_profiles": {"key": "properties.remoteInboundProfiles", "type": "[str]"}, + "remote_outbound_profiles": {"key": "properties.remoteOutboundProfiles", "type": "[str]"}, + "description": {"key": "properties.description", "type": "str"}, + "status": {"key": "properties.status", "type": "str"}, + } + + def __init__( + self, + *, + auto_approved_remote_perimeter_resource_id: Optional[str] = None, + local_inbound_profiles: Optional[List[str]] = None, + remote_inbound_profiles: Optional[List[str]] = None, + description: Optional[str] = None, + **kwargs + ): + """ + :keyword auto_approved_remote_perimeter_resource_id: Perimeter ARM Id for the remote NSP with + which the link gets created in Auto-approval mode. It should be used when the NSP admin have + Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP + resource. + :paramtype auto_approved_remote_perimeter_resource_id: str + :keyword local_inbound_profiles: Local Inbound profile names to which Inbound is allowed. Use + ['\ *'] to allow inbound to all profiles. It's default value is ['*\ ']. + :paramtype local_inbound_profiles: list[str] + :keyword remote_inbound_profiles: Remote Inbound profile names to which Inbound is allowed. Use + ['\ *'] to allow inbound to all profiles. This property can only be updated in auto-approval + mode. It's default value is ['*\ ']. + :paramtype remote_inbound_profiles: list[str] + :keyword description: A message passed to the owner of the remote NSP link resource with this + connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted + to 140 chars. + :paramtype description: str + """ + super().__init__(**kwargs) + self.provisioning_state = None + self.auto_approved_remote_perimeter_resource_id = auto_approved_remote_perimeter_resource_id + self.remote_perimeter_guid = None + self.local_inbound_profiles = local_inbound_profiles + self.local_outbound_profiles = None + self.remote_inbound_profiles = remote_inbound_profiles + self.remote_outbound_profiles = None + self.description = description + self.status = None + + +class NspLinkListResult(_serialization.Model): + """Result of the request to list NSP link resources. Contains a list of NSP link resources and a URL link to get the next set of results. + + :ivar value: Gets a page of NSP Link resources. + :vartype value: list[~azure.mgmt.network.v2021_02_01_preview.models.NspLink] + :ivar next_link: Gets the URL to get the next page of results. + :vartype next_link: str + """ + + _attribute_map = { + "value": {"key": "value", "type": "[NspLink]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__(self, *, value: Optional[List["_models.NspLink"]] = None, next_link: Optional[str] = None, **kwargs): + """ + :keyword value: Gets a page of NSP Link resources. + :paramtype value: list[~azure.mgmt.network.v2021_02_01_preview.models.NspLink] + :keyword next_link: Gets the URL to get the next page of results. + :paramtype next_link: str + """ + super().__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class NspLinkReference(ProxyResource): # pylint: disable=too-many-instance-attributes + """The network security perimeter linkReference resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :ivar etag: A unique read-only string that changes whenever the resource is updated. + :vartype etag: str + :ivar provisioning_state: The provisioning state of the NSP LinkReference resource. Known + values are: "Succeeded", "Creating", "Updating", "Deleting", "Accepted", and "Failed". + :vartype provisioning_state: str or + ~azure.mgmt.network.v2021_02_01_preview.models.NspProvisioningState + :ivar remote_perimeter_resource_id: Perimeter ARM Id for the remote NSP with which the link is + created. + :vartype remote_perimeter_resource_id: str + :ivar remote_perimeter_guid: Remote NSP Guid with which the link is created. + :vartype remote_perimeter_guid: str + :ivar local_inbound_profiles: Local Inbound profile names to which Inbound is allowed. Use ['\ + *'] to allow inbound to all profiles. It's default value is ['*\ ']. + :vartype local_inbound_profiles: list[str] + :ivar local_outbound_profiles: Local Outbound profile names from which Outbound is allowed. Use + ['\ *'] to allow outbound from all profiles. It's default value is ['*\ ']. + :vartype local_outbound_profiles: list[str] + :ivar remote_inbound_profiles: Remote Inbound profile names to which Inbound is allowed. ['*'] + value implies inbound is allowed to all profiles at remote perimeter. This property can only be + updated from remote perimeter. + :vartype remote_inbound_profiles: list[str] + :ivar remote_outbound_profiles: Remote Outbound profile names from which Outbound is allowed. + ['*'] value implies outbound is allowed from all profiles at remote perimeter. This property + can only be updated from remote perimeter. + :vartype remote_outbound_profiles: list[str] + :ivar description: A message sent by the remote NSP link admin for connection request. In case + of Auto-approved flow, it is default to 'Auto Approved'. + :vartype description: str + :ivar status: The NSP linkReference state. It cannot be changed if link is created in + auto-approval mode. Known values are: "Approved", "Pending", "Rejected", and "Disconnected". + :vartype status: str or ~azure.mgmt.network.v2021_02_01_preview.models.NspLinkStatus + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "etag": {"readonly": True}, + "provisioning_state": {"readonly": True}, + "remote_perimeter_resource_id": {"readonly": True}, + "remote_perimeter_guid": {"readonly": True}, + "local_inbound_profiles": {"unique": True}, + "local_outbound_profiles": {"readonly": True, "unique": True}, + "remote_inbound_profiles": {"readonly": True}, + "remote_outbound_profiles": {"readonly": True}, + "description": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "etag": {"key": "etag", "type": "str"}, + "provisioning_state": {"key": "properties.provisioningState", "type": "str"}, + "remote_perimeter_resource_id": {"key": "properties.remotePerimeterResourceId", "type": "str"}, + "remote_perimeter_guid": {"key": "properties.remotePerimeterGuid", "type": "str"}, + "local_inbound_profiles": {"key": "properties.localInboundProfiles", "type": "[str]"}, + "local_outbound_profiles": {"key": "properties.localOutboundProfiles", "type": "[str]"}, + "remote_inbound_profiles": {"key": "properties.remoteInboundProfiles", "type": "[str]"}, + "remote_outbound_profiles": {"key": "properties.remoteOutboundProfiles", "type": "[str]"}, + "description": {"key": "properties.description", "type": "str"}, + "status": {"key": "properties.status", "type": "str"}, + } + + def __init__( + self, + *, + local_inbound_profiles: Optional[List[str]] = None, + status: Optional[Union[str, "_models.NspLinkStatus"]] = None, + **kwargs + ): + """ + :keyword local_inbound_profiles: Local Inbound profile names to which Inbound is allowed. Use + ['\ *'] to allow inbound to all profiles. It's default value is ['*\ ']. + :paramtype local_inbound_profiles: list[str] + :keyword status: The NSP linkReference state. It cannot be changed if link is created in + auto-approval mode. Known values are: "Approved", "Pending", "Rejected", and "Disconnected". + :paramtype status: str or ~azure.mgmt.network.v2021_02_01_preview.models.NspLinkStatus + """ + super().__init__(**kwargs) + self.provisioning_state = None + self.remote_perimeter_resource_id = None + self.remote_perimeter_guid = None + self.local_inbound_profiles = local_inbound_profiles + self.local_outbound_profiles = None + self.remote_inbound_profiles = None + self.remote_outbound_profiles = None + self.description = None + self.status = status + + +class NspLinkReferenceListResult(_serialization.Model): + """Result of the request to list NSP linkReference resources. Contains a list of NSP linkReference resources and a URL link to get the next set of results. + + :ivar value: Gets a page of NSP LinkReference resources. + :vartype value: list[~azure.mgmt.network.v2021_02_01_preview.models.NspLinkReference] + :ivar next_link: Gets the URL to get the next page of results. + :vartype next_link: str + """ + + _attribute_map = { + "value": {"key": "value", "type": "[NspLinkReference]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__( + self, *, value: Optional[List["_models.NspLinkReference"]] = None, next_link: Optional[str] = None, **kwargs + ): + """ + :keyword value: Gets a page of NSP LinkReference resources. + :paramtype value: list[~azure.mgmt.network.v2021_02_01_preview.models.NspLinkReference] + :keyword next_link: Gets the URL to get the next page of results. + :paramtype next_link: str + """ + super().__init__(**kwargs) + self.value = value + self.next_link = next_link + + class NspProfile(Resource): """The network security perimeter profile resource. diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_network_management_client_enums.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_network_management_client_enums.py index b7dd56958a9f..928973d87b14 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_network_management_client_enums.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/models/_network_management_client_enums.py @@ -121,6 +121,15 @@ class MembershipType(str, Enum, metaclass=CaseInsensitiveEnumMeta): DYNAMIC = "Dynamic" +class NspLinkStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The NSP link state.""" + + APPROVED = "Approved" + PENDING = "Pending" + REJECTED = "Rejected" + DISCONNECTED = "Disconnected" + + class NspProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The current provisioning state.""" diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/__init__.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/__init__.py index 653c730d77be..fd41b7b45671 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/__init__.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/__init__.py @@ -30,6 +30,10 @@ from ._operations import NspAssociationReconcileOperations from ._operations import PerimeterAssociableResourceTypesOperations from ._operations import NspAccessRulesReconcileOperations +from ._operations import NspLinksOperations +from ._operations import NspLinkReconcileOperations +from ._operations import NspLinkReferencesOperations +from ._operations import NspLinkReferenceReconcileOperations from ._patch import __all__ as _patch_all from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import @@ -60,6 +64,10 @@ "NspAssociationReconcileOperations", "PerimeterAssociableResourceTypesOperations", "NspAccessRulesReconcileOperations", + "NspLinksOperations", + "NspLinkReconcileOperations", + "NspLinkReferencesOperations", + "NspLinkReferenceReconcileOperations", ] __all__.extend([p for p in _patch_all if p not in __all__]) _patch_sdk() diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/_operations.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/_operations.py index b0fbf79aac43..427c9d471e76 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/_operations.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2021_02_01_preview/operations/_operations.py @@ -8,7 +8,7 @@ # -------------------------------------------------------------------------- import sys from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload -from urllib.parse import parse_qs, urljoin, urlparse +import urllib.parse from azure.core.exceptions import ( ClientAuthenticationError, @@ -2563,6 +2563,345 @@ def build_nsp_access_rules_reconcile_post_request( return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, json=json, **kwargs) +def build_nsp_links_get_request( + resource_group_name: str, network_security_perimeter_name: str, link_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkName": _SERIALIZER.url("link_name", link_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_links_create_or_update_request( + resource_group_name: str, network_security_perimeter_name: str, link_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkName": _SERIALIZER.url("link_name", link_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_links_delete_request( + resource_group_name: str, network_security_perimeter_name: str, link_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkName": _SERIALIZER.url("link_name", link_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_links_list_request( + resource_group_name: str, + network_security_perimeter_name: str, + subscription_id: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int", maximum=20, minimum=1) + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_link_reconcile_post_request( + resource_group_name: str, network_security_perimeter_name: str, link_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}/reconcile", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkName": _SERIALIZER.url("link_name", link_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_link_references_get_request( + resource_group_name: str, + network_security_perimeter_name: str, + link_reference_name: str, + subscription_id: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkReferenceName": _SERIALIZER.url("link_reference_name", link_reference_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_link_references_delete_request( + resource_group_name: str, + network_security_perimeter_name: str, + link_reference_name: str, + subscription_id: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkReferenceName": _SERIALIZER.url("link_reference_name", link_reference_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_link_references_list_request( + resource_group_name: str, + network_security_perimeter_name: str, + subscription_id: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int", maximum=20, minimum=1) + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_nsp_link_reference_reconcile_post_request( + resource_group_name: str, + network_security_perimeter_name: str, + link_reference_name: str, + subscription_id: str, + **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}/reconcile", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "networkSecurityPerimeterName": _SERIALIZER.url( + "network_security_perimeter_name", network_security_perimeter_name, "str" + ), + "linkReferenceName": _SERIALIZER.url("link_reference_name", link_reference_name, "str"), + } + + _url = _format_url_section(_url, **path_format_arguments) + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + class NetworkManagersOperations: """ .. warning:: @@ -2570,29 +2909,1040 @@ class NetworkManagersOperations: Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`network_managers` attribute. + :attr:`network_managers` attribute. + """ + + models = _models + + 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") + + @distributed_trace + def get(self, resource_group_name: str, network_manager_name: str, **kwargs: Any) -> _models.NetworkManager: + """Gets the specified Network Manager. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManager] + + request = build_network_managers_get_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.get.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("NetworkManager", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore + + @overload + def create_or_update( + self, + resource_group_name: str, + network_manager_name: str, + parameters: _models.NetworkManager, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManager: + """Creates or updates a Network Manager. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which network manager is. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def create_or_update( + self, + resource_group_name: str, + network_manager_name: str, + parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManager: + """Creates or updates a Network Manager. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which network manager is. Required. + :type parameters: IO + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def create_or_update( + self, + resource_group_name: str, + network_manager_name: str, + parameters: Union[_models.NetworkManager, IO], + **kwargs: Any + ) -> _models.NetworkManager: + """Creates or updates a Network Manager. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which network manager is. Is either a model + type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager or IO + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManager] + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "NetworkManager") + + request = build_network_managers_create_or_update_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.create_or_update.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + 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) + + if response.status_code == 200: + deserialized = self._deserialize("NetworkManager", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("NetworkManager", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore + + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_manager_name: str, **kwargs: Any + ) -> None: + """Deletes a network manager. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_network_managers_delete_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.delete.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + 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) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore + + @overload + def patch_tags( + self, + resource_group_name: str, + network_manager_name: str, + parameters: _models.TagsObject, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManager: + """Patch a NetworkManager Tags. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to update network manager tags. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.TagsObject + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def patch_tags( + self, + resource_group_name: str, + network_manager_name: str, + parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManager: + """Patch a NetworkManager Tags. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to update network manager tags. Required. + :type parameters: IO + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def patch_tags( + self, + resource_group_name: str, + network_manager_name: str, + parameters: Union[_models.TagsObject, IO], + **kwargs: Any + ) -> _models.NetworkManager: + """Patch a NetworkManager Tags. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to update network manager tags. Is either a model type + or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.TagsObject or IO + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManager or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManager] + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "TagsObject") + + request = build_network_managers_patch_tags_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.patch_tags.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("NetworkManager", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + patch_tags.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore + + @distributed_trace + def list_by_subscription( + self, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any + ) -> Iterable["_models.NetworkManager"]: + """List all network managers in a subscription. + + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NetworkManager or the result of cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerListResult] + + error_map = { + 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_network_managers_list_by_subscription_request( + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list_by_subscription.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("NetworkManagerListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkManagers"} # type: ignore + + @distributed_trace + def list( + self, resource_group_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any + ) -> Iterable["_models.NetworkManager"]: + """List network managers in a resource group. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NetworkManager or the result of cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerListResult] + + error_map = { + 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_network_managers_list_request( + resource_group_name=resource_group_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("NetworkManagerListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers"} # type: ignore + + +class NetworkManagerCommitsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`network_manager_commits` attribute. + """ + + models = _models + + 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") + + @overload + def post( + self, + resource_group_name: str, + network_manager_name: str, + parameters: _models.NetworkManagerCommit, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManagerCommit: + """Post a Network Manager Commit. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which Managed Network commit is. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManagerCommit or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post( + self, + resource_group_name: str, + network_manager_name: str, + parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManagerCommit: + """Post a Network Manager Commit. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which Managed Network commit is. Required. + :type parameters: IO + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManagerCommit or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def post( + self, + resource_group_name: str, + network_manager_name: str, + parameters: Union[_models.NetworkManagerCommit, IO], + **kwargs: Any + ) -> _models.NetworkManagerCommit: + """Post a Network Manager Commit. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which Managed Network commit is. Is either a + model type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit or IO + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManagerCommit or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerCommit] + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "NetworkManagerCommit") + + request = build_network_manager_commits_post_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.post.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize("NetworkManagerCommit", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/commit"} # type: ignore + + +class NetworkManagerDeploymentStatusOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`network_manager_deployment_status` attribute. + """ + + models = _models + + 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") + + @overload + def list( + self, + resource_group_name: str, + network_manager_name: str, + parameters: _models.NetworkManagerDeploymentStatusParameter, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManagerDeploymentStatusListResult: + """Post to List of Network Manager Deployment Status. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which Managed Network deployment status is. + Required. + :type parameters: + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusParameter + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManagerDeploymentStatusListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def list( + self, + resource_group_name: str, + network_manager_name: str, + parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.NetworkManagerDeploymentStatusListResult: + """Post to List of Network Manager Deployment Status. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which Managed Network deployment status is. + Required. + :type parameters: IO + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManagerDeploymentStatusListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def list( + self, + resource_group_name: str, + network_manager_name: str, + parameters: Union[_models.NetworkManagerDeploymentStatusParameter, IO], + **kwargs: Any + ) -> _models.NetworkManagerDeploymentStatusListResult: + """Post to List of Network Manager Deployment Status. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Parameters supplied to specify which Managed Network deployment status is. + Is either a model type or a IO type. Required. + :type parameters: + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusParameter or IO + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkManagerDeploymentStatusListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerDeploymentStatusListResult] + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "NetworkManagerDeploymentStatusParameter") + + request = build_network_manager_deployment_status_list_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("NetworkManagerDeploymentStatusListResult", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listDeploymentStatus"} # type: ignore + + +class EffectiveVirtualNetworksOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`effective_virtual_networks` attribute. """ - models = _models + models = _models + + 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") + + @overload + def list_by_network_manager( + self, + resource_group_name: str, + network_manager_name: str, + parameters: _models.EffectiveVirtualNetworksParameter, + top: Optional[int] = None, + skip_token: Optional[str] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.EffectiveVirtualNetworksListResult: + """List effective virtual networks in a network manager. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Effective Virtual Networks Parameter. Required. + :type parameters: + ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksParameter + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EffectiveVirtualNetworksListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def list_by_network_manager( + self, + resource_group_name: str, + network_manager_name: str, + parameters: IO, + top: Optional[int] = None, + skip_token: Optional[str] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.EffectiveVirtualNetworksListResult: + """List effective virtual networks in a network manager. - 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") + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Effective Virtual Networks Parameter. Required. + :type parameters: IO + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EffectiveVirtualNetworksListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace - def get(self, resource_group_name: str, network_manager_name: str, **kwargs: Any) -> _models.NetworkManager: - """Gets the specified Network Manager. + def list_by_network_manager( + self, + resource_group_name: str, + network_manager_name: str, + parameters: Union[_models.EffectiveVirtualNetworksParameter, IO], + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> _models.EffectiveVirtualNetworksListResult: + """List effective virtual networks in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str + :param parameters: Effective Virtual Networks Parameter. Is either a model type or a IO type. + Required. + :type parameters: + ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksParameter or IO + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: EffectiveVirtualNetworksListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -2603,18 +3953,32 @@ def get(self, resource_group_name: str, network_manager_name: str, **kwargs: Any } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManager] + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.EffectiveVirtualNetworksListResult] - request = build_network_managers_get_request( + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "EffectiveVirtualNetworksParameter") + + request = build_effective_virtual_networks_list_by_network_manager_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=api_version, - template_url=self.get.metadata["url"], + content_type=content_type, + json=_json, + content=_content, + template_url=self.list_by_network_manager.metadata["url"], headers=_headers, params=_params, ) @@ -2631,92 +3995,101 @@ def get(self, resource_group_name: str, network_manager_name: str, **kwargs: Any map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NetworkManager", pipeline_response) + deserialized = self._deserialize("EffectiveVirtualNetworksListResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore + list_by_network_manager.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listEffectiveVirtualNetworks"} # type: ignore @overload - def create_or_update( + def list_by_network_group( self, resource_group_name: str, network_manager_name: str, - parameters: _models.NetworkManager, + network_group_name: str, + parameters: _models.QueryRequestOptions, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManager: - """Creates or updates a Network Manager. + ) -> _models.EffectiveVirtualNetworksListResult: + """Lists all effective virtual networks by specified network group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which network manager is. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :param parameters: Parameters supplied to list correct page. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: EffectiveVirtualNetworksListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def create_or_update( + def list_by_network_group( self, resource_group_name: str, network_manager_name: str, + network_group_name: str, parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManager: - """Creates or updates a Network Manager. + ) -> _models.EffectiveVirtualNetworksListResult: + """Lists all effective virtual networks by specified network group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which network manager is. Required. + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :param parameters: Parameters supplied to list correct page. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: EffectiveVirtualNetworksListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def create_or_update( + def list_by_network_group( self, resource_group_name: str, network_manager_name: str, - parameters: Union[_models.NetworkManager, IO], + network_group_name: str, + parameters: Union[_models.QueryRequestOptions, IO], **kwargs: Any - ) -> _models.NetworkManager: - """Creates or updates a Network Manager. + ) -> _models.EffectiveVirtualNetworksListResult: + """Lists all effective virtual networks by specified network group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which network manager is. Is either a model - type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager or IO + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :param parameters: Parameters supplied to list correct page. Is either a model type or a IO + type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: EffectiveVirtualNetworksListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -2732,7 +4105,7 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManager] + cls = kwargs.pop("cls", None) # type: ClsType[_models.EffectiveVirtualNetworksListResult] content_type = content_type or "application/json" _json = None @@ -2740,17 +4113,18 @@ def create_or_update( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "NetworkManager") + _json = self._serialize.body(parameters, "QueryRequestOptions") - request = build_network_managers_create_or_update_request( + request = build_effective_virtual_networks_list_by_network_group_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, + network_group_name=network_group_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.create_or_update.metadata["url"], + template_url=self.list_by_network_group.metadata["url"], headers=_headers, params=_params, ) @@ -2763,108 +4137,69 @@ def create_or_update( response = pipeline_response.http_response - if response.status_code not in [200, 201]: + 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) - if response.status_code == 200: - deserialized = self._deserialize("NetworkManager", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("NetworkManager", pipeline_response) + deserialized = self._deserialize("EffectiveVirtualNetworksListResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore - - @distributed_trace - def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, network_manager_name: str, **kwargs: Any - ) -> None: - """Deletes a network manager. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None or the result of cls(response) - :rtype: None - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[None] - - request = build_network_managers_delete_request( - resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.delete.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore + list_by_network_group.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}/listEffectiveVirtualNetworks"} # type: ignore - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response +class ActiveConnectivityConfigurationsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - 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) + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`active_connectivity_configurations` attribute. + """ - if cls: - return cls(pipeline_response, None, {}) + models = _models - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # 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") @overload - def patch_tags( + def list( self, resource_group_name: str, network_manager_name: str, - parameters: _models.TagsObject, + parameters: _models.ActiveConfigurationParameter, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManager: - """Patch a NetworkManager Tags. + ) -> _models.ActiveConnectivityConfigurationsListResult: + """Lists active connectivity configurations in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to update network manager tags. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.TagsObject + :param parameters: Active Configuration Parameter. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: ActiveConnectivityConfigurationsListResult or the result of cls(response) + :rtype: + ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConnectivityConfigurationsListResult :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def patch_tags( + def list( self, resource_group_name: str, network_manager_name: str, @@ -2872,47 +4207,50 @@ def patch_tags( *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManager: - """Patch a NetworkManager Tags. + ) -> _models.ActiveConnectivityConfigurationsListResult: + """Lists active connectivity configurations in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to update network manager tags. Required. + :param parameters: Active Configuration Parameter. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: ActiveConnectivityConfigurationsListResult or the result of cls(response) + :rtype: + ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConnectivityConfigurationsListResult :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def patch_tags( + def list( self, resource_group_name: str, network_manager_name: str, - parameters: Union[_models.TagsObject, IO], + parameters: Union[_models.ActiveConfigurationParameter, IO], **kwargs: Any - ) -> _models.NetworkManager: - """Patch a NetworkManager Tags. + ) -> _models.ActiveConnectivityConfigurationsListResult: + """Lists active connectivity configurations in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to update network manager tags. Is either a model type - or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.TagsObject or IO + :param parameters: Active Configuration Parameter. Is either a model type or a IO type. + Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter + or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManager or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager + :return: ActiveConnectivityConfigurationsListResult or the result of cls(response) + :rtype: + ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConnectivityConfigurationsListResult :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -2928,7 +4266,7 @@ def patch_tags( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManager] + cls = kwargs.pop("cls", None) # type: ClsType[_models.ActiveConnectivityConfigurationsListResult] content_type = content_type or "application/json" _json = None @@ -2936,9 +4274,9 @@ def patch_tags( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "TagsObject") + _json = self._serialize.body(parameters, "ActiveConfigurationParameter") - request = build_network_managers_patch_tags_request( + request = build_active_connectivity_configurations_list_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, subscription_id=self._config.subscription_id, @@ -2946,7 +4284,7 @@ def patch_tags( content_type=content_type, json=_json, content=_content, - template_url=self.patch_tags.metadata["url"], + template_url=self.list.metadata["url"], headers=_headers, params=_params, ) @@ -2963,128 +4301,115 @@ def patch_tags( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NetworkManager", pipeline_response) + deserialized = self._deserialize("ActiveConnectivityConfigurationsListResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - patch_tags.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}"} # type: ignore - - @distributed_trace - def list_by_subscription( - self, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.NetworkManager"]: - """List all network managers in a subscription. - - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NetworkManager or the result of cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerListResult] - - error_map = { - 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: + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listActiveConnectivityConfigurations"} # type: ignore - request = build_network_managers_list_by_subscription_request( - subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - else: - # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - request.method = "GET" - return request +class ActiveSecurityAdminRulesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - def extract_data(pipeline_response): - deserialized = self._deserialize("NetworkManagerListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`active_security_admin_rules` attribute. + """ - def get_next(next_link=None): - request = prepare_request(next_link) + models = _models - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response + 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") - 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) + @overload + def list( + self, + resource_group_name: str, + network_manager_name: str, + parameters: _models.ActiveConfigurationParameter, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.ActiveSecurityAdminRulesListResult: + """Lists active security admin rules in a network manager. - return pipeline_response + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Active Configuration Parameter. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ActiveSecurityAdminRulesListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityAdminRulesListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ - return ItemPaged(get_next, extract_data) + @overload + def list( + self, + resource_group_name: str, + network_manager_name: str, + parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.ActiveSecurityAdminRulesListResult: + """Lists active security admin rules in a network manager. - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkManagers"} # type: ignore + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Active Configuration Parameter. Required. + :type parameters: IO + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ActiveSecurityAdminRulesListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityAdminRulesListResult + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace def list( - self, resource_group_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.NetworkManager"]: - """List network managers in a resource group. + self, + resource_group_name: str, + network_manager_name: str, + parameters: Union[_models.ActiveConfigurationParameter, IO], + **kwargs: Any + ) -> _models.ActiveSecurityAdminRulesListResult: + """Lists active security admin rules in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param parameters: Active Configuration Parameter. Is either a model type or a IO type. + Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter + or IO + :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. + Default value is None. + :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NetworkManager or the result of cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkManager] + :return: ActiveSecurityAdminRulesListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityAdminRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerListResult] - error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -3093,67 +4418,64 @@ def list( } error_map.update(kwargs.pop("error_map", {}) or {}) - def prepare_request(next_link=None): - if not next_link: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - request = build_network_managers_list_request( - resource_group_name=resource_group_name, - subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, - api_version=api_version, - template_url=self.list.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] + cls = kwargs.pop("cls", None) # type: ClsType[_models.ActiveSecurityAdminRulesListResult] - else: - # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - request.method = "GET" - return request + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(parameters, (IO, bytes)): + _content = parameters + else: + _json = self._serialize.body(parameters, "ActiveConfigurationParameter") - def extract_data(pipeline_response): - deserialized = self._deserialize("NetworkManagerListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) + request = build_active_security_admin_rules_list_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - def get_next(next_link=None): - request = prepare_request(next_link) + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs - ) - response = pipeline_response.http_response + 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) + 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 + deserialized = self._deserialize("ActiveSecurityAdminRulesListResult", pipeline_response) - return ItemPaged(get_next, extract_data) + if cls: + return cls(pipeline_response, deserialized, {}) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers"} # type: ignore + return deserialized + + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listActiveSecurityAdminRules"} # type: ignore -class NetworkManagerCommitsOperations: +class ActiveSecurityUserRulesOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`network_manager_commits` attribute. + :attr:`active_security_user_rules` attribute. """ models = _models @@ -3166,34 +4488,34 @@ def __init__(self, *args, **kwargs): self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @overload - def post( + def list( self, resource_group_name: str, network_manager_name: str, - parameters: _models.NetworkManagerCommit, + parameters: _models.ActiveConfigurationParameter, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManagerCommit: - """Post a Network Manager Commit. + ) -> _models.ActiveSecurityUserRulesListResult: + """Lists Active Security User Rules in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which Managed Network commit is. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :param parameters: Active Configuration Parameter. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerCommit or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :return: ActiveSecurityUserRulesListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityUserRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def post( + def list( self, resource_group_name: str, network_manager_name: str, @@ -3201,47 +4523,48 @@ def post( *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManagerCommit: - """Post a Network Manager Commit. + ) -> _models.ActiveSecurityUserRulesListResult: + """Lists Active Security User Rules in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which Managed Network commit is. Required. + :param parameters: Active Configuration Parameter. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerCommit or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :return: ActiveSecurityUserRulesListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityUserRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def post( + def list( self, resource_group_name: str, network_manager_name: str, - parameters: Union[_models.NetworkManagerCommit, IO], + parameters: Union[_models.ActiveConfigurationParameter, IO], **kwargs: Any - ) -> _models.NetworkManagerCommit: - """Post a Network Manager Commit. + ) -> _models.ActiveSecurityUserRulesListResult: + """Lists Active Security User Rules in a network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which Managed Network commit is. Is either a - model type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit or IO + :param parameters: Active Configuration Parameter. Is either a model type or a IO type. + Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter + or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerCommit or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerCommit + :return: ActiveSecurityUserRulesListResult or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityUserRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -3257,7 +4580,7 @@ def post( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerCommit] + cls = kwargs.pop("cls", None) # type: ClsType[_models.ActiveSecurityUserRulesListResult] content_type = content_type or "application/json" _json = None @@ -3265,9 +4588,9 @@ def post( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "NetworkManagerCommit") + _json = self._serialize.body(parameters, "ActiveConfigurationParameter") - request = build_network_manager_commits_post_request( + request = build_active_security_user_rules_list_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, subscription_id=self._config.subscription_id, @@ -3275,7 +4598,7 @@ def post( content_type=content_type, json=_json, content=_content, - template_url=self.post.metadata["url"], + template_url=self.list.metadata["url"], headers=_headers, params=_params, ) @@ -3288,28 +4611,28 @@ def post( response = pipeline_response.http_response - if response.status_code not in [202]: + 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("NetworkManagerCommit", pipeline_response) + deserialized = self._deserialize("ActiveSecurityUserRulesListResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/commit"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listActiveSecurityUserRules"} # type: ignore -class NetworkManagerDeploymentStatusOperations: +class ConnectivityConfigurationsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`network_manager_deployment_status` attribute. + :attr:`connectivity_configurations` attribute. """ models = _models @@ -3321,87 +4644,164 @@ def __init__(self, *args, **kwargs): 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") + @distributed_trace + def get( + self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any + ) -> _models.ConnectivityConfiguration: + """Gets a Network Connectivity Configuration, specified by the resource group, network manager + name, and connectivity Configuration name. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager connectivity configuration. + Required. + :type configuration_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConnectivityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.ConnectivityConfiguration] + + request = build_connectivity_configurations_get_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + configuration_name=configuration_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.get.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("ConnectivityConfiguration", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}"} # type: ignore + @overload - def list( + def create_or_update( self, resource_group_name: str, network_manager_name: str, - parameters: _models.NetworkManagerDeploymentStatusParameter, + configuration_name: str, + connectivity_configuration: _models.ConnectivityConfiguration, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManagerDeploymentStatusListResult: - """Post to List of Network Manager Deployment Status. + ) -> _models.ConnectivityConfiguration: + """Creates/Updates a new network manager connectivity configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which Managed Network deployment status is. + :param configuration_name: The name of the network manager connectivity configuration. Required. - :type parameters: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusParameter + :type configuration_name: str + :param connectivity_configuration: Parameters supplied to create/update a network manager + connectivity configuration. Required. + :type connectivity_configuration: + ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerDeploymentStatusListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusListResult + :return: ConnectivityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def list( + def create_or_update( self, resource_group_name: str, network_manager_name: str, - parameters: IO, + configuration_name: str, + connectivity_configuration: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManagerDeploymentStatusListResult: - """Post to List of Network Manager Deployment Status. + ) -> _models.ConnectivityConfiguration: + """Creates/Updates a new network manager connectivity configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which Managed Network deployment status is. + :param configuration_name: The name of the network manager connectivity configuration. Required. - :type parameters: IO + :type configuration_name: str + :param connectivity_configuration: Parameters supplied to create/update a network manager + connectivity configuration. Required. + :type connectivity_configuration: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerDeploymentStatusListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusListResult + :return: ConnectivityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def list( + def create_or_update( self, resource_group_name: str, network_manager_name: str, - parameters: Union[_models.NetworkManagerDeploymentStatusParameter, IO], + configuration_name: str, + connectivity_configuration: Union[_models.ConnectivityConfiguration, IO], **kwargs: Any - ) -> _models.NetworkManagerDeploymentStatusListResult: - """Post to List of Network Manager Deployment Status. + ) -> _models.ConnectivityConfiguration: + """Creates/Updates a new network manager connectivity configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Parameters supplied to specify which Managed Network deployment status is. - Is either a model type or a IO type. Required. - :type parameters: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusParameter or IO + :param configuration_name: The name of the network manager connectivity configuration. + Required. + :type configuration_name: str + :param connectivity_configuration: Parameters supplied to create/update a network manager + connectivity configuration. Is either a model type or a IO type. Required. + :type connectivity_configuration: + ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerDeploymentStatusListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerDeploymentStatusListResult + :return: ConnectivityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -3417,25 +4817,26 @@ def list( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerDeploymentStatusListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.ConnectivityConfiguration] content_type = content_type or "application/json" _json = None _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters + if isinstance(connectivity_configuration, (IO, bytes)): + _content = connectivity_configuration else: - _json = self._serialize.body(parameters, "NetworkManagerDeploymentStatusParameter") + _json = self._serialize.body(connectivity_configuration, "ConnectivityConfiguration") - request = build_network_manager_deployment_status_list_request( + request = build_connectivity_configurations_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, + configuration_name=configuration_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.list.metadata["url"], + template_url=self.create_or_update.metadata["url"], headers=_headers, params=_params, ) @@ -3448,134 +4849,99 @@ def list( response = pipeline_response.http_response - if response.status_code not in [200]: + 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) - deserialized = self._deserialize("NetworkManagerDeploymentStatusListResult", pipeline_response) + if response.status_code == 200: + deserialized = self._deserialize("ConnectivityConfiguration", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("ConnectivityConfiguration", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listDeploymentStatus"} # type: ignore - - -class EffectiveVirtualNetworksOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`effective_virtual_networks` attribute. - """ - - models = _models - - 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") + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}"} # type: ignore - @overload - def list_by_network_manager( - self, - resource_group_name: str, - network_manager_name: str, - parameters: _models.EffectiveVirtualNetworksParameter, - top: Optional[int] = None, - skip_token: Optional[str] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.EffectiveVirtualNetworksListResult: - """List effective virtual networks in a network manager. + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any + ) -> None: + """Deletes a network manager connectivity configuration, specified by the resource group, network + manager name, and connectivity configuration name. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Effective Virtual Networks Parameter. Required. - :type parameters: - ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksParameter - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str + :param configuration_name: The name of the network manager connectivity configuration. + Required. + :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: EffectiveVirtualNetworksListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :return: None or the result of cls(response) + :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) - @overload - def list_by_network_manager( - self, - resource_group_name: str, - network_manager_name: str, - parameters: IO, - top: Optional[int] = None, - skip_token: Optional[str] = None, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.EffectiveVirtualNetworksListResult: - """List effective virtual networks in a network manager. + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param parameters: Effective Virtual Networks Parameter. Required. - :type parameters: IO - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: EffectiveVirtualNetworksListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult - :raises ~azure.core.exceptions.HttpResponseError: - """ + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_connectivity_configurations_delete_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + configuration_name=configuration_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.delete.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + 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) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}"} # type: ignore @distributed_trace - def list_by_network_manager( + def list( self, resource_group_name: str, network_manager_name: str, - parameters: Union[_models.EffectiveVirtualNetworksParameter, IO], top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> _models.EffectiveVirtualNetworksListResult: - """List effective virtual networks in a network manager. + ) -> Iterable["_models.ConnectivityConfiguration"]: + """Lists all the network manager connectivity configuration in a specified network manager. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Effective Virtual Networks Parameter. Is either a model type or a IO type. - Required. - :type parameters: - ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksParameter or IO :param top: An optional query parameter which specifies the maximum number of records to be returned by the server. Default value is None. :type top: int @@ -3584,14 +4950,19 @@ def list_by_network_manager( a skipToken parameter that specifies a starting point to use for subsequent calls. Default value is None. :type skip_token: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: EffectiveVirtualNetworksListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :return: An iterator like instance of either ConnectivityConfiguration or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.ConnectivityConfigurationListResult] + error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -3600,134 +4971,158 @@ def list_by_network_manager( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + def prepare_request(next_link=None): + if not next_link: - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.EffectiveVirtualNetworksListResult] + request = build_connectivity_configurations_list_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters - else: - _json = self._serialize.body(parameters, "EffectiveVirtualNetworksParameter") + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request - request = build_effective_virtual_networks_list_by_network_manager_request( - resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.list_by_network_manager.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore + def extract_data(pipeline_response): + deserialized = self._deserialize("ConnectivityConfigurationListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs - ) + return pipeline_response - response = pipeline_response.http_response + return ItemPaged(get_next, extract_data) - 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) + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations"} # type: ignore - deserialized = self._deserialize("EffectiveVirtualNetworksListResult", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) +class EffectiveConnectivityConfigurationsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - return deserialized + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`effective_connectivity_configurations` attribute. + """ - list_by_network_manager.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listEffectiveVirtualNetworks"} # type: ignore + models = _models + + 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") @overload - def list_by_network_group( + def list( self, resource_group_name: str, - network_manager_name: str, - network_group_name: str, + virtual_network_name: str, parameters: _models.QueryRequestOptions, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.EffectiveVirtualNetworksListResult: - """Lists all effective virtual networks by specified network group. + ) -> _models.NetworkManagerEffectiveConnectivityConfigurationListResult: + """List all effective connectivity configurations applied on a virtual network. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str + :param virtual_network_name: The name of the virtual network. Required. + :type virtual_network_name: str :param parameters: Parameters supplied to list correct page. Required. :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: EffectiveVirtualNetworksListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :return: NetworkManagerEffectiveConnectivityConfigurationListResult or the result of + cls(response) + :rtype: + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveConnectivityConfigurationListResult :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def list_by_network_group( + def list( self, resource_group_name: str, - network_manager_name: str, - network_group_name: str, + virtual_network_name: str, parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.EffectiveVirtualNetworksListResult: - """Lists all effective virtual networks by specified network group. + ) -> _models.NetworkManagerEffectiveConnectivityConfigurationListResult: + """List all effective connectivity configurations applied on a virtual network. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str + :param virtual_network_name: The name of the virtual network. Required. + :type virtual_network_name: str :param parameters: Parameters supplied to list correct page. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: EffectiveVirtualNetworksListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :return: NetworkManagerEffectiveConnectivityConfigurationListResult or the result of + cls(response) + :rtype: + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveConnectivityConfigurationListResult :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def list_by_network_group( + def list( self, resource_group_name: str, - network_manager_name: str, - network_group_name: str, + virtual_network_name: str, parameters: Union[_models.QueryRequestOptions, IO], **kwargs: Any - ) -> _models.EffectiveVirtualNetworksListResult: - """Lists all effective virtual networks by specified network group. + ) -> _models.NetworkManagerEffectiveConnectivityConfigurationListResult: + """List all effective connectivity configurations applied on a virtual network. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str + :param virtual_network_name: The name of the virtual network. Required. + :type virtual_network_name: str :param parameters: Parameters supplied to list correct page. Is either a model type or a IO type. Required. :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions or IO @@ -3735,8 +5130,10 @@ def list_by_network_group( Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: EffectiveVirtualNetworksListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.EffectiveVirtualNetworksListResult + :return: NetworkManagerEffectiveConnectivityConfigurationListResult or the result of + cls(response) + :rtype: + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveConnectivityConfigurationListResult :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -3752,7 +5149,9 @@ def list_by_network_group( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.EffectiveVirtualNetworksListResult] + cls = kwargs.pop( + "cls", None + ) # type: ClsType[_models.NetworkManagerEffectiveConnectivityConfigurationListResult] content_type = content_type or "application/json" _json = None @@ -3762,16 +5161,15 @@ def list_by_network_group( else: _json = self._serialize.body(parameters, "QueryRequestOptions") - request = build_effective_virtual_networks_list_by_network_group_request( + request = build_effective_connectivity_configurations_list_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - network_group_name=network_group_name, + virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.list_by_network_group.metadata["url"], + template_url=self.list.metadata["url"], headers=_headers, params=_params, ) @@ -3788,24 +5186,26 @@ def list_by_network_group( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("EffectiveVirtualNetworksListResult", pipeline_response) + deserialized = self._deserialize( + "NetworkManagerEffectiveConnectivityConfigurationListResult", pipeline_response + ) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - list_by_network_group.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}/listEffectiveVirtualNetworks"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/listNetworkManagerEffectiveConnectivityConfigurations"} # type: ignore -class ActiveConnectivityConfigurationsOperations: +class NetworkManagerEffectiveSecurityAdminRulesOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`active_connectivity_configurations` attribute. + :attr:`network_manager_effective_security_admin_rules` attribute. """ models = _models @@ -3821,27 +5221,27 @@ def __init__(self, *args, **kwargs): def list( self, resource_group_name: str, - network_manager_name: str, - parameters: _models.ActiveConfigurationParameter, + virtual_network_name: str, + parameters: _models.QueryRequestOptions, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.ActiveConnectivityConfigurationsListResult: - """Lists active connectivity configurations in a network manager. + ) -> _models.NetworkManagerEffectiveSecurityAdminRulesListResult: + """List all effective security admin rules applied on a virtual network. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param parameters: Active Configuration Parameter. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter + :param virtual_network_name: The name of the virtual network. Required. + :type virtual_network_name: str + :param parameters: Parameters supplied to list correct page. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveConnectivityConfigurationsListResult or the result of cls(response) + :return: NetworkManagerEffectiveSecurityAdminRulesListResult or the result of cls(response) :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConnectivityConfigurationsListResult + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveSecurityAdminRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ @@ -3849,27 +5249,27 @@ def list( def list( self, resource_group_name: str, - network_manager_name: str, + virtual_network_name: str, parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.ActiveConnectivityConfigurationsListResult: - """Lists active connectivity configurations in a network manager. + ) -> _models.NetworkManagerEffectiveSecurityAdminRulesListResult: + """List all effective security admin rules applied on a virtual network. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param parameters: Active Configuration Parameter. Required. + :param virtual_network_name: The name of the virtual network. Required. + :type virtual_network_name: str + :param parameters: Parameters supplied to list correct page. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveConnectivityConfigurationsListResult or the result of cls(response) + :return: NetworkManagerEffectiveSecurityAdminRulesListResult or the result of cls(response) :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConnectivityConfigurationsListResult + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveSecurityAdminRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ @@ -3877,27 +5277,26 @@ def list( def list( self, resource_group_name: str, - network_manager_name: str, - parameters: Union[_models.ActiveConfigurationParameter, IO], + virtual_network_name: str, + parameters: Union[_models.QueryRequestOptions, IO], **kwargs: Any - ) -> _models.ActiveConnectivityConfigurationsListResult: - """Lists active connectivity configurations in a network manager. + ) -> _models.NetworkManagerEffectiveSecurityAdminRulesListResult: + """List all effective security admin rules applied on a virtual network. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param parameters: Active Configuration Parameter. Is either a model type or a IO type. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter - or IO + :param virtual_network_name: The name of the virtual network. Required. + :type virtual_network_name: str + :param parameters: Parameters supplied to list correct page. Is either a model type or a IO + type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveConnectivityConfigurationsListResult or the result of cls(response) + :return: NetworkManagerEffectiveSecurityAdminRulesListResult or the result of cls(response) :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConnectivityConfigurationsListResult + ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveSecurityAdminRulesListResult :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -3913,7 +5312,7 @@ def list( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.ActiveConnectivityConfigurationsListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerEffectiveSecurityAdminRulesListResult] content_type = content_type or "application/json" _json = None @@ -3921,11 +5320,11 @@ def list( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "ActiveConfigurationParameter") + _json = self._serialize.body(parameters, "QueryRequestOptions") - request = build_active_connectivity_configurations_list_request( + request = build_network_manager_effective_security_admin_rules_list_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, + virtual_network_name=virtual_network_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, @@ -3948,113 +5347,201 @@ def list( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ActiveConnectivityConfigurationsListResult", pipeline_response) + deserialized = self._deserialize("NetworkManagerEffectiveSecurityAdminRulesListResult", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listActiveConnectivityConfigurations"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/listNetworkManagerEffectiveSecurityAdminRules"} # type: ignore -class ActiveSecurityAdminRulesOperations: +class NetworkGroupsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`active_security_admin_rules` attribute. + :attr:`network_groups` attribute. """ - models = _models + models = _models + + 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") + + @distributed_trace + def get( + self, resource_group_name: str, network_manager_name: str, network_group_name: str, **kwargs: Any + ) -> _models.NetworkGroup: + """Gets the specified network group. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NetworkGroup or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkGroup] + + request = build_network_groups_get_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + network_group_name=network_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.get.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("NetworkGroup", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) - 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 + + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}"} # type: ignore @overload - def list( + def create_or_update( self, resource_group_name: str, network_manager_name: str, - parameters: _models.ActiveConfigurationParameter, + network_group_name: str, + parameters: _models.NetworkGroup, + if_match: Optional[str] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.ActiveSecurityAdminRulesListResult: - """Lists active security admin rules in a network manager. + ) -> _models.NetworkGroup: + """Creates or updates a network group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Active Configuration Parameter. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :param parameters: Parameters supplied to the specify which network group need to create. + Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup + :param if_match: The ETag of the transformation. Omit this value to always overwrite the + current resource. Specify the last-seen ETag value to prevent accidentally overwriting + concurrent changes. Default value is None. + :type if_match: str :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveSecurityAdminRulesListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityAdminRulesListResult + :return: NetworkGroup or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def list( + def create_or_update( self, resource_group_name: str, network_manager_name: str, + network_group_name: str, parameters: IO, + if_match: Optional[str] = None, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.ActiveSecurityAdminRulesListResult: - """Lists active security admin rules in a network manager. + ) -> _models.NetworkGroup: + """Creates or updates a network group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Active Configuration Parameter. Required. + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :param parameters: Parameters supplied to the specify which network group need to create. + Required. :type parameters: IO + :param if_match: The ETag of the transformation. Omit this value to always overwrite the + current resource. Specify the last-seen ETag value to prevent accidentally overwriting + concurrent changes. Default value is None. + :type if_match: str :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveSecurityAdminRulesListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityAdminRulesListResult + :return: NetworkGroup or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def list( + def create_or_update( self, resource_group_name: str, network_manager_name: str, - parameters: Union[_models.ActiveConfigurationParameter, IO], + network_group_name: str, + parameters: Union[_models.NetworkGroup, IO], + if_match: Optional[str] = None, **kwargs: Any - ) -> _models.ActiveSecurityAdminRulesListResult: - """Lists active security admin rules in a network manager. + ) -> _models.NetworkGroup: + """Creates or updates a network group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Active Configuration Parameter. Is either a model type or a IO type. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter - or IO + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :param parameters: Parameters supplied to the specify which network group need to create. Is + either a model type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup or IO + :param if_match: The ETag of the transformation. Omit this value to always overwrite the + current resource. Specify the last-seen ETag value to prevent accidentally overwriting + concurrent changes. Default value is None. + :type if_match: str :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveSecurityAdminRulesListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityAdminRulesListResult + :return: NetworkGroup or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -4070,7 +5557,7 @@ def list( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.ActiveSecurityAdminRulesListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkGroup] content_type = content_type or "application/json" _json = None @@ -4078,17 +5565,19 @@ def list( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "ActiveConfigurationParameter") + _json = self._serialize.body(parameters, "NetworkGroup") - request = build_active_security_admin_rules_list_request( + request = build_network_groups_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, + network_group_name=network_group_name, subscription_id=self._config.subscription_id, + if_match=if_match, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.list.metadata["url"], + template_url=self.create_or_update.metadata["url"], headers=_headers, params=_params, ) @@ -4101,28 +5590,199 @@ def list( response = pipeline_response.http_response - if response.status_code not in [200]: + 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) + + response_headers = {} + if response.status_code == 200: + response_headers["ETag"] = self._deserialize("str", response.headers.get("ETag")) + + deserialized = self._deserialize("NetworkGroup", pipeline_response) + + if response.status_code == 201: + response_headers["ETag"] = self._deserialize("str", response.headers.get("ETag")) + + deserialized = self._deserialize("NetworkGroup", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, response_headers) + + return deserialized + + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}"} # type: ignore + + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_manager_name: str, network_group_name: str, **kwargs: Any + ) -> None: + """Deletes a network group. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param network_group_name: The name of the network group to get. Required. + :type network_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + + request = build_network_groups_delete_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + network_group_name=network_group_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.delete.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + 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) - deserialized = self._deserialize("ActiveSecurityAdminRulesListResult", pipeline_response) + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}"} # type: ignore + + @distributed_trace + def list( + self, + resource_group_name: str, + network_manager_name: str, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> Iterable["_models.NetworkGroup"]: + """Lists the specified network group. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NetworkGroup or the result of cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkGroupListResult] + + error_map = { + 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_network_groups_list_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("NetworkGroupListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) - if cls: - return cls(pipeline_response, deserialized, {}) + return pipeline_response - return deserialized + return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listActiveSecurityAdminRules"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups"} # type: ignore -class ActiveSecurityUserRulesOperations: +class SecurityUserConfigurationsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`active_security_user_rules` attribute. + :attr:`security_user_configurations` attribute. """ models = _models @@ -4134,86 +5794,43 @@ def __init__(self, *args, **kwargs): 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") - @overload - def list( - self, - resource_group_name: str, - network_manager_name: str, - parameters: _models.ActiveConfigurationParameter, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.ActiveSecurityUserRulesListResult: - """Lists Active Security User Rules in a network manager. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param parameters: Active Configuration Parameter. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveSecurityUserRulesListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityUserRulesListResult - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload + @distributed_trace def list( self, resource_group_name: str, network_manager_name: str, - parameters: IO, - *, - content_type: str = "application/json", + top: Optional[int] = None, + skip_token: Optional[str] = None, **kwargs: Any - ) -> _models.ActiveSecurityUserRulesListResult: - """Lists Active Security User Rules in a network manager. + ) -> Iterable["_models.SecurityConfiguration"]: + """Lists all the network manager security user configurations in a network manager, in a paginated + format. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param parameters: Active Configuration Parameter. Required. - :type parameters: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveSecurityUserRulesListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityUserRulesListResult + :return: An iterator like instance of either SecurityConfiguration or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - @distributed_trace - def list( - self, - resource_group_name: str, - network_manager_name: str, - parameters: Union[_models.ActiveConfigurationParameter, IO], - **kwargs: Any - ) -> _models.ActiveSecurityUserRulesListResult: - """Lists Active Security User Rules in a network manager. + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfigurationListResult] - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param parameters: Active Configuration Parameter. Is either a model type or a IO type. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveConfigurationParameter - or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: ActiveSecurityUserRulesListResult or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ActiveSecurityUserRulesListResult - :raises ~azure.core.exceptions.HttpResponseError: - """ error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -4222,92 +5839,81 @@ def list( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.ActiveSecurityUserRulesListResult] - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters - else: - _json = self._serialize.body(parameters, "ActiveConfigurationParameter") - - request = build_active_security_user_rules_list_request( - resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.list.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **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) + def prepare_request(next_link=None): + if not next_link: - deserialized = self._deserialize("ActiveSecurityUserRulesListResult", pipeline_response) + request = build_security_user_configurations_list_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - if cls: - return cls(pipeline_response, deserialized, {}) + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request - return deserialized + def extract_data(pipeline_response): + deserialized = self._deserialize("SecurityConfigurationListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/listActiveSecurityUserRules"} # type: ignore + def get_next(next_link=None): + request = prepare_request(next_link) + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + response = pipeline_response.http_response -class ConnectivityConfigurationsOperations: - """ - .. 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) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`connectivity_configurations` attribute. - """ + return pipeline_response - models = _models + return ItemPaged(get_next, extract_data) - 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") + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations"} # type: ignore @distributed_trace def get( self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any - ) -> _models.ConnectivityConfiguration: - """Gets a Network Connectivity Configuration, specified by the resource group, network manager - name, and connectivity Configuration name. + ) -> _models.SecurityConfiguration: + """Retrieves a network manager security user configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param configuration_name: The name of the network manager connectivity configuration. - Required. + :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ConnectivityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration + :return: SecurityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -4322,9 +5928,9 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.ConnectivityConfiguration] + cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfiguration] - request = build_connectivity_configurations_get_request( + request = build_security_user_configurations_get_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -4347,14 +5953,14 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("ConnectivityConfiguration", pipeline_response) + deserialized = self._deserialize("SecurityConfiguration", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}"} # type: ignore @overload def create_or_update( @@ -4362,30 +5968,29 @@ def create_or_update( resource_group_name: str, network_manager_name: str, configuration_name: str, - connectivity_configuration: _models.ConnectivityConfiguration, + security_user_configuration: _models.SecurityConfiguration, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.ConnectivityConfiguration: - """Creates/Updates a new network manager connectivity configuration. + ) -> _models.SecurityConfiguration: + """Creates or updates a network manager security user configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param configuration_name: The name of the network manager connectivity configuration. - Required. + :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str - :param connectivity_configuration: Parameters supplied to create/update a network manager - connectivity configuration. Required. - :type connectivity_configuration: - ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration + :param security_user_configuration: The security user configuration to create or update. + Required. + :type security_user_configuration: + ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ConnectivityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration + :return: SecurityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ @@ -4395,29 +6000,28 @@ def create_or_update( resource_group_name: str, network_manager_name: str, configuration_name: str, - connectivity_configuration: IO, + security_user_configuration: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.ConnectivityConfiguration: - """Creates/Updates a new network manager connectivity configuration. + ) -> _models.SecurityConfiguration: + """Creates or updates a network manager security user configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param configuration_name: The name of the network manager connectivity configuration. - Required. + :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str - :param connectivity_configuration: Parameters supplied to create/update a network manager - connectivity configuration. Required. - :type connectivity_configuration: IO + :param security_user_configuration: The security user configuration to create or update. + Required. + :type security_user_configuration: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ConnectivityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration + :return: SecurityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ @@ -4427,28 +6031,27 @@ def create_or_update( resource_group_name: str, network_manager_name: str, configuration_name: str, - connectivity_configuration: Union[_models.ConnectivityConfiguration, IO], + security_user_configuration: Union[_models.SecurityConfiguration, IO], **kwargs: Any - ) -> _models.ConnectivityConfiguration: - """Creates/Updates a new network manager connectivity configuration. + ) -> _models.SecurityConfiguration: + """Creates or updates a network manager security user configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param configuration_name: The name of the network manager connectivity configuration. - Required. + :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str - :param connectivity_configuration: Parameters supplied to create/update a network manager - connectivity configuration. Is either a model type or a IO type. Required. - :type connectivity_configuration: - ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration or IO + :param security_user_configuration: The security user configuration to create or update. Is + either a model type or a IO type. Required. + :type security_user_configuration: + ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: ConnectivityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration + :return: SecurityConfiguration or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -4464,17 +6067,17 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.ConnectivityConfiguration] + cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfiguration] content_type = content_type or "application/json" _json = None _content = None - if isinstance(connectivity_configuration, (IO, bytes)): - _content = connectivity_configuration + if isinstance(security_user_configuration, (IO, bytes)): + _content = security_user_configuration else: - _json = self._serialize.body(connectivity_configuration, "ConnectivityConfiguration") + _json = self._serialize.body(security_user_configuration, "SecurityConfiguration") - request = build_connectivity_configurations_create_or_update_request( + request = build_security_user_configurations_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -4501,31 +6104,29 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("ConnectivityConfiguration", pipeline_response) + deserialized = self._deserialize("SecurityConfiguration", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("ConnectivityConfiguration", pipeline_response) + deserialized = self._deserialize("SecurityConfiguration", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any ) -> None: - """Deletes a network manager connectivity configuration, specified by the resource group, network - manager name, and connectivity configuration name. + """Deletes a network manager security user configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param configuration_name: The name of the network manager connectivity configuration. - Required. + :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) @@ -4546,7 +6147,7 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_connectivity_configurations_delete_request( + request = build_security_user_configurations_delete_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -4572,23 +6173,46 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}"} # type: ignore + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}"} # type: ignore + + +class UserRuleCollectionsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`user_rule_collections` attribute. + """ + + models = _models + + 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") @distributed_trace def list( self, resource_group_name: str, network_manager_name: str, + configuration_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.ConnectivityConfiguration"]: - """Lists all the network manager connectivity configuration in a specified network manager. + ) -> Iterable["_models.RuleCollection"]: + """Lists all the user rule collections in a security configuration, in a paginated format. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str :param top: An optional query parameter which specifies the maximum number of records to be returned by the server. Default value is None. :type top: int @@ -4598,17 +6222,16 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either ConnectivityConfiguration or the result of - cls(response) + :return: An iterator like instance of either RuleCollection or the result of cls(response) :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.ConnectivityConfiguration] + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.ConnectivityConfigurationListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollectionListResult] error_map = { 401: ClientAuthenticationError, @@ -4621,9 +6244,10 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_connectivity_configurations_list_request( + request = build_user_rule_collections_list_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, + configuration_name=configuration_name, subscription_id=self._config.subscription_id, top=top, skip_token=skip_token, @@ -4637,17 +6261,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("ConnectivityConfigurationListResult", pipeline_response) + deserialized = self._deserialize("RuleCollectionListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -4669,111 +6300,178 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections"} # type: ignore + @distributed_trace + def get( + self, + resource_group_name: str, + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + **kwargs: Any + ) -> _models.RuleCollection: + """Gets a network manager security user configuration rule collection. -class EffectiveConnectivityConfigurationsOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RuleCollection or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`effective_connectivity_configurations` attribute. - """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - models = _models + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollection] - 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") + request = build_user_rule_collections_get_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.get.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("RuleCollection", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore @overload - def list( + def create_or_update( self, resource_group_name: str, - virtual_network_name: str, - parameters: _models.QueryRequestOptions, + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + user_rule_collection: _models.RuleCollection, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManagerEffectiveConnectivityConfigurationListResult: - """List all effective connectivity configurations applied on a virtual network. + ) -> _models.RuleCollection: + """Creates or updates a user rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param virtual_network_name: The name of the virtual network. Required. - :type virtual_network_name: str - :param parameters: Parameters supplied to list correct page. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param user_rule_collection: The User Rule Collection to create or update. Required. + :type user_rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerEffectiveConnectivityConfigurationListResult or the result of - cls(response) - :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveConnectivityConfigurationListResult + :return: RuleCollection or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def list( + def create_or_update( self, resource_group_name: str, - virtual_network_name: str, - parameters: IO, + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + user_rule_collection: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkManagerEffectiveConnectivityConfigurationListResult: - """List all effective connectivity configurations applied on a virtual network. + ) -> _models.RuleCollection: + """Creates or updates a user rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param virtual_network_name: The name of the virtual network. Required. - :type virtual_network_name: str - :param parameters: Parameters supplied to list correct page. Required. - :type parameters: IO + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param user_rule_collection: The User Rule Collection to create or update. Required. + :type user_rule_collection: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerEffectiveConnectivityConfigurationListResult or the result of - cls(response) - :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveConnectivityConfigurationListResult + :return: RuleCollection or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def list( + def create_or_update( self, resource_group_name: str, - virtual_network_name: str, - parameters: Union[_models.QueryRequestOptions, IO], + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + user_rule_collection: Union[_models.RuleCollection, IO], **kwargs: Any - ) -> _models.NetworkManagerEffectiveConnectivityConfigurationListResult: - """List all effective connectivity configurations applied on a virtual network. + ) -> _models.RuleCollection: + """Creates or updates a user rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param virtual_network_name: The name of the virtual network. Required. - :type virtual_network_name: str - :param parameters: Parameters supplied to list correct page. Is either a model type or a IO - type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions or IO + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param user_rule_collection: The User Rule Collection to create or update. Is either a model + type or a IO type. Required. + :type user_rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerEffectiveConnectivityConfigurationListResult or the result of - cls(response) - :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveConnectivityConfigurationListResult + :return: RuleCollection or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -4789,27 +6487,27 @@ def list( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop( - "cls", None - ) # type: ClsType[_models.NetworkManagerEffectiveConnectivityConfigurationListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollection] content_type = content_type or "application/json" _json = None _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters + if isinstance(user_rule_collection, (IO, bytes)): + _content = user_rule_collection else: - _json = self._serialize.body(parameters, "QueryRequestOptions") + _json = self._serialize.body(user_rule_collection, "RuleCollection") - request = build_effective_connectivity_configurations_list_request( + request = build_user_rule_collections_create_or_update_request( resource_group_name=resource_group_name, - virtual_network_name=virtual_network_name, + network_manager_name=network_manager_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, json=_json, content=_content, - template_url=self.list.metadata["url"], + template_url=self.create_or_update.metadata["url"], headers=_headers, params=_params, ) @@ -4822,121 +6520,46 @@ def list( response = pipeline_response.http_response - if response.status_code not in [200]: + 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) - deserialized = self._deserialize( - "NetworkManagerEffectiveConnectivityConfigurationListResult", pipeline_response - ) + if response.status_code == 200: + deserialized = self._deserialize("RuleCollection", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("RuleCollection", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/listNetworkManagerEffectiveConnectivityConfigurations"} # type: ignore - - -class NetworkManagerEffectiveSecurityAdminRulesOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`network_manager_effective_security_admin_rules` attribute. - """ - - models = _models - - 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") - - @overload - def list( - self, - resource_group_name: str, - virtual_network_name: str, - parameters: _models.QueryRequestOptions, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.NetworkManagerEffectiveSecurityAdminRulesListResult: - """List all effective security admin rules applied on a virtual network. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: The name of the virtual network. Required. - :type virtual_network_name: str - :param parameters: Parameters supplied to list correct page. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerEffectiveSecurityAdminRulesListResult or the result of cls(response) - :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveSecurityAdminRulesListResult - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def list( - self, - resource_group_name: str, - virtual_network_name: str, - parameters: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.NetworkManagerEffectiveSecurityAdminRulesListResult: - """List all effective security admin rules applied on a virtual network. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param virtual_network_name: The name of the virtual network. Required. - :type virtual_network_name: str - :param parameters: Parameters supplied to list correct page. Required. - :type parameters: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerEffectiveSecurityAdminRulesListResult or the result of cls(response) - :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveSecurityAdminRulesListResult - :raises ~azure.core.exceptions.HttpResponseError: - """ + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore @distributed_trace - def list( + def delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, - virtual_network_name: str, - parameters: Union[_models.QueryRequestOptions, IO], + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, **kwargs: Any - ) -> _models.NetworkManagerEffectiveSecurityAdminRulesListResult: - """List all effective security admin rules applied on a virtual network. + ) -> None: + """Deletes a user rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param virtual_network_name: The name of the virtual network. Required. - :type virtual_network_name: str - :param parameters: Parameters supplied to list correct page. Is either a model type or a IO - type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.QueryRequestOptions or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkManagerEffectiveSecurityAdminRulesListResult or the result of cls(response) - :rtype: - ~azure.mgmt.network.v2021_02_01_preview.models.NetworkManagerEffectiveSecurityAdminRulesListResult + :return: None or the result of cls(response) + :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -4947,30 +6570,20 @@ def list( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkManagerEffectiveSecurityAdminRulesListResult] - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters - else: - _json = self._serialize.body(parameters, "QueryRequestOptions") + cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_network_manager_effective_security_admin_rules_list_request( + request = build_user_rule_collections_delete_request( resource_group_name=resource_group_name, - virtual_network_name=virtual_network_name, + network_manager_name=network_manager_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, subscription_id=self._config.subscription_id, api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.list.metadata["url"], + template_url=self.delete.metadata["url"], headers=_headers, params=_params, ) @@ -4983,54 +6596,173 @@ def list( 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) + 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) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore + + +class UserRulesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`user_rules` attribute. + """ + + models = _models + + 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") + + @distributed_trace + def list( + self, + resource_group_name: str, + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> Iterable["_models.BaseUserRule"]: + """Lists all user rules in a rule collection. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_manager_name: The name of the network manager. Required. + :type network_manager_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either BaseUserRule or the result of cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.UserRuleListResult] + + error_map = { + 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: - deserialized = self._deserialize("NetworkManagerEffectiveSecurityAdminRulesListResult", pipeline_response) + request = build_user_rules_list_request( + resource_group_name=resource_group_name, + network_manager_name=network_manager_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore - if cls: - return cls(pipeline_response, deserialized, {}) + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request - return deserialized + def extract_data(pipeline_response): + deserialized = self._deserialize("UserRuleListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/listNetworkManagerEffectiveSecurityAdminRules"} # type: ignore + def get_next(next_link=None): + request = prepare_request(next_link) + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + response = pipeline_response.http_response -class NetworkGroupsOperations: - """ - .. 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) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`network_groups` attribute. - """ + return pipeline_response - models = _models + return ItemPaged(get_next, extract_data) - 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") + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules"} # type: ignore @distributed_trace def get( - self, resource_group_name: str, network_manager_name: str, network_group_name: str, **kwargs: Any - ) -> _models.NetworkGroup: - """Gets the specified network group. + self, + resource_group_name: str, + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + rule_name: str, + **kwargs: Any + ) -> _models.BaseUserRule: + """Gets a user rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param rule_name: The name of the rule. Required. + :type rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkGroup or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup + :return: BaseUserRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -5045,12 +6777,14 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkGroup] + cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseUserRule] - request = build_network_groups_get_request( + request = build_user_rules_get_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, - network_group_name=network_group_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, + rule_name=rule_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.get.metadata["url"], @@ -5070,48 +6804,49 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NetworkGroup", pipeline_response) + deserialized = self._deserialize("BaseUserRule", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore @overload def create_or_update( self, resource_group_name: str, network_manager_name: str, - network_group_name: str, - parameters: _models.NetworkGroup, - if_match: Optional[str] = None, + configuration_name: str, + rule_collection_name: str, + rule_name: str, + user_rule: _models.BaseUserRule, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkGroup: - """Creates or updates a network group. + ) -> _models.BaseUserRule: + """Creates or updates a user rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str - :param parameters: Parameters supplied to the specify which network group need to create. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup - :param if_match: The ETag of the transformation. Omit this value to always overwrite the - current resource. Specify the last-seen ETag value to prevent accidentally overwriting - concurrent changes. Default value is None. - :type if_match: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param rule_name: The name of the rule. Required. + :type rule_name: str + :param user_rule: The user rule to create or update. Required. + :type user_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkGroup or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup + :return: BaseUserRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule :raises ~azure.core.exceptions.HttpResponseError: """ @@ -5120,34 +6855,35 @@ def create_or_update( self, resource_group_name: str, network_manager_name: str, - network_group_name: str, - parameters: IO, - if_match: Optional[str] = None, + configuration_name: str, + rule_collection_name: str, + rule_name: str, + user_rule: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkGroup: - """Creates or updates a network group. + ) -> _models.BaseUserRule: + """Creates or updates a user rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str - :param parameters: Parameters supplied to the specify which network group need to create. - Required. - :type parameters: IO - :param if_match: The ETag of the transformation. Omit this value to always overwrite the - current resource. Specify the last-seen ETag value to prevent accidentally overwriting - concurrent changes. Default value is None. - :type if_match: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param rule_name: The name of the rule. Required. + :type rule_name: str + :param user_rule: The user rule to create or update. Required. + :type user_rule: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkGroup or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup + :return: BaseUserRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule :raises ~azure.core.exceptions.HttpResponseError: """ @@ -5156,32 +6892,34 @@ def create_or_update( self, resource_group_name: str, network_manager_name: str, - network_group_name: str, - parameters: Union[_models.NetworkGroup, IO], - if_match: Optional[str] = None, + configuration_name: str, + rule_collection_name: str, + rule_name: str, + user_rule: Union[_models.BaseUserRule, IO], **kwargs: Any - ) -> _models.NetworkGroup: - """Creates or updates a network group. + ) -> _models.BaseUserRule: + """Creates or updates a user rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str - :param parameters: Parameters supplied to the specify which network group need to create. Is - either a model type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup or IO - :param if_match: The ETag of the transformation. Omit this value to always overwrite the - current resource. Specify the last-seen ETag value to prevent accidentally overwriting - concurrent changes. Default value is None. - :type if_match: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param rule_name: The name of the rule. Required. + :type rule_name: str + :param user_rule: The user rule to create or update. Is either a model type or a IO type. + Required. + :type user_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkGroup or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup + :return: BaseUserRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -5197,22 +6935,23 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkGroup] + cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseUserRule] content_type = content_type or "application/json" _json = None _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters + if isinstance(user_rule, (IO, bytes)): + _content = user_rule else: - _json = self._serialize.body(parameters, "NetworkGroup") + _json = self._serialize.body(user_rule, "BaseUserRule") - request = build_network_groups_create_or_update_request( + request = build_user_rules_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, - network_group_name=network_group_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, + rule_name=rule_name, subscription_id=self._config.subscription_id, - if_match=if_match, api_version=api_version, content_type=content_type, json=_json, @@ -5234,36 +6973,42 @@ def create_or_update( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - response_headers = {} if response.status_code == 200: - response_headers["ETag"] = self._deserialize("str", response.headers.get("ETag")) - - deserialized = self._deserialize("NetworkGroup", pipeline_response) + deserialized = self._deserialize("BaseUserRule", pipeline_response) if response.status_code == 201: - response_headers["ETag"] = self._deserialize("str", response.headers.get("ETag")) - - deserialized = self._deserialize("NetworkGroup", pipeline_response) + deserialized = self._deserialize("BaseUserRule", pipeline_response) if cls: - return cls(pipeline_response, deserialized, response_headers) + return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, network_manager_name: str, network_group_name: str, **kwargs: Any + self, + resource_group_name: str, + network_manager_name: str, + configuration_name: str, + rule_collection_name: str, + rule_name: str, + **kwargs: Any ) -> None: - """Deletes a network group. + """Deletes a user rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_manager_name: The name of the network manager. Required. :type network_manager_name: str - :param network_group_name: The name of the network group to get. Required. - :type network_group_name: str + :param configuration_name: The name of the network manager security Configuration. Required. + :type configuration_name: str + :param rule_collection_name: The name of the network manager security Configuration rule + collection. Required. + :type rule_collection_name: str + :param rule_name: The name of the rule. Required. + :type rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) :rtype: None @@ -5283,10 +7028,12 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_network_groups_delete_request( + request = build_user_rules_delete_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, - network_group_name=network_group_name, + configuration_name=configuration_name, + rule_collection_name=rule_collection_name, + rule_name=rule_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.delete.metadata["url"], @@ -5309,113 +7056,17 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups/{networkGroupName}"} # type: ignore - - @distributed_trace - def list( - self, - resource_group_name: str, - network_manager_name: str, - top: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs: Any - ) -> Iterable["_models.NetworkGroup"]: - """Lists the specified network group. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NetworkGroup or the result of cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkGroup] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkGroupListResult] - - error_map = { - 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_network_groups_list_request( - resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, - api_version=api_version, - template_url=self.list.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - else: - # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("NetworkGroupListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **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) - - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/networkGroups"} # type: ignore + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore -class SecurityUserConfigurationsOperations: +class SecurityAdminConfigurationsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`security_user_configurations` attribute. + :attr:`security_admin_configurations` attribute. """ models = _models @@ -5436,8 +7087,8 @@ def list( skip_token: Optional[str] = None, **kwargs: Any ) -> Iterable["_models.SecurityConfiguration"]: - """Lists all the network manager security user configurations in a network manager, in a paginated - format. + """Lists all the network manager security admin configurations in a network manager, in a + paginated format. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5475,7 +7126,7 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_security_user_configurations_list_request( + request = build_security_admin_configurations_list_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, subscription_id=self._config.subscription_id, @@ -5491,10 +7142,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5523,13 +7181,13 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations"} # type: ignore @distributed_trace def get( self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any ) -> _models.SecurityConfiguration: - """Retrieves a network manager security user configuration. + """Retrieves a network manager security admin configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5556,7 +7214,7 @@ def get( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfiguration] - request = build_security_user_configurations_get_request( + request = build_security_admin_configurations_get_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -5586,7 +7244,7 @@ def get( return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}"} # type: ignore @overload def create_or_update( @@ -5594,12 +7252,12 @@ def create_or_update( resource_group_name: str, network_manager_name: str, configuration_name: str, - security_user_configuration: _models.SecurityConfiguration, + security_admin_configuration: _models.SecurityConfiguration, *, content_type: str = "application/json", **kwargs: Any ) -> _models.SecurityConfiguration: - """Creates or updates a network manager security user configuration. + """Creates or updates a network manager security admin configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5607,9 +7265,9 @@ def create_or_update( :type network_manager_name: str :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str - :param security_user_configuration: The security user configuration to create or update. + :param security_admin_configuration: The security admin configuration to create or update. Required. - :type security_user_configuration: + :type security_admin_configuration: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -5626,12 +7284,12 @@ def create_or_update( resource_group_name: str, network_manager_name: str, configuration_name: str, - security_user_configuration: IO, + security_admin_configuration: IO, *, content_type: str = "application/json", **kwargs: Any ) -> _models.SecurityConfiguration: - """Creates or updates a network manager security user configuration. + """Creates or updates a network manager security admin configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5639,9 +7297,9 @@ def create_or_update( :type network_manager_name: str :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str - :param security_user_configuration: The security user configuration to create or update. + :param security_admin_configuration: The security admin configuration to create or update. Required. - :type security_user_configuration: IO + :type security_admin_configuration: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str @@ -5657,10 +7315,10 @@ def create_or_update( resource_group_name: str, network_manager_name: str, configuration_name: str, - security_user_configuration: Union[_models.SecurityConfiguration, IO], + security_admin_configuration: Union[_models.SecurityConfiguration, IO], **kwargs: Any ) -> _models.SecurityConfiguration: - """Creates or updates a network manager security user configuration. + """Creates or updates a network manager security admin configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5668,9 +7326,9 @@ def create_or_update( :type network_manager_name: str :param configuration_name: The name of the network manager security Configuration. Required. :type configuration_name: str - :param security_user_configuration: The security user configuration to create or update. Is + :param security_admin_configuration: The security admin configuration to create or update. Is either a model type or a IO type. Required. - :type security_user_configuration: + :type security_admin_configuration: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. @@ -5698,12 +7356,12 @@ def create_or_update( content_type = content_type or "application/json" _json = None _content = None - if isinstance(security_user_configuration, (IO, bytes)): - _content = security_user_configuration + if isinstance(security_admin_configuration, (IO, bytes)): + _content = security_admin_configuration else: - _json = self._serialize.body(security_user_configuration, "SecurityConfiguration") + _json = self._serialize.body(security_admin_configuration, "SecurityConfiguration") - request = build_security_user_configurations_create_or_update_request( + request = build_security_admin_configurations_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -5740,13 +7398,13 @@ def create_or_update( return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any ) -> None: - """Deletes a network manager security user configuration. + """Deletes a network manager security admin configuration. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5773,7 +7431,7 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_security_user_configurations_delete_request( + request = build_security_admin_configurations_delete_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -5799,17 +7457,17 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}"} # type: ignore + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}"} # type: ignore -class UserRuleCollectionsOperations: +class AdminRuleCollectionsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`user_rule_collections` attribute. + :attr:`admin_rule_collections` attribute. """ models = _models @@ -5831,7 +7489,7 @@ def list( skip_token: Optional[str] = None, **kwargs: Any ) -> Iterable["_models.RuleCollection"]: - """Lists all the user rule collections in a security configuration, in a paginated format. + """Lists all the rule collections in a security admin configuration, in a paginated format. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5870,7 +7528,7 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_user_rule_collections_list_request( + request = build_admin_rule_collections_list_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -5887,10 +7545,17 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" @@ -5919,7 +7584,7 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections"} # type: ignore @distributed_trace def get( @@ -5930,7 +7595,7 @@ def get( rule_collection_name: str, **kwargs: Any ) -> _models.RuleCollection: - """Gets a network manager security user configuration rule collection. + """Gets a network manager security admin configuration rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -5960,7 +7625,7 @@ def get( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollection] - request = build_user_rule_collections_get_request( + request = build_admin_rule_collections_get_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -5991,7 +7656,7 @@ def get( return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore @overload def create_or_update( @@ -6000,12 +7665,12 @@ def create_or_update( network_manager_name: str, configuration_name: str, rule_collection_name: str, - user_rule_collection: _models.RuleCollection, + rule_collection: _models.RuleCollection, *, content_type: str = "application/json", **kwargs: Any ) -> _models.RuleCollection: - """Creates or updates a user rule collection. + """Creates or updates an admin rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6016,8 +7681,8 @@ def create_or_update( :param rule_collection_name: The name of the network manager security Configuration rule collection. Required. :type rule_collection_name: str - :param user_rule_collection: The User Rule Collection to create or update. Required. - :type user_rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + :param rule_collection: The Rule Collection to create or update. Required. + :type rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str @@ -6034,12 +7699,12 @@ def create_or_update( network_manager_name: str, configuration_name: str, rule_collection_name: str, - user_rule_collection: IO, + rule_collection: IO, *, content_type: str = "application/json", **kwargs: Any ) -> _models.RuleCollection: - """Creates or updates a user rule collection. + """Creates or updates an admin rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6050,8 +7715,8 @@ def create_or_update( :param rule_collection_name: The name of the network manager security Configuration rule collection. Required. :type rule_collection_name: str - :param user_rule_collection: The User Rule Collection to create or update. Required. - :type user_rule_collection: IO + :param rule_collection: The Rule Collection to create or update. Required. + :type rule_collection: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str @@ -6068,10 +7733,10 @@ def create_or_update( network_manager_name: str, configuration_name: str, rule_collection_name: str, - user_rule_collection: Union[_models.RuleCollection, IO], + rule_collection: Union[_models.RuleCollection, IO], **kwargs: Any ) -> _models.RuleCollection: - """Creates or updates a user rule collection. + """Creates or updates an admin rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6082,9 +7747,9 @@ def create_or_update( :param rule_collection_name: The name of the network manager security Configuration rule collection. Required. :type rule_collection_name: str - :param user_rule_collection: The User Rule Collection to create or update. Is either a model - type or a IO type. Required. - :type user_rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection or IO + :param rule_collection: The Rule Collection to create or update. Is either a model type or a IO + type. Required. + :type rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str @@ -6111,12 +7776,12 @@ def create_or_update( content_type = content_type or "application/json" _json = None _content = None - if isinstance(user_rule_collection, (IO, bytes)): - _content = user_rule_collection + if isinstance(rule_collection, (IO, bytes)): + _content = rule_collection else: - _json = self._serialize.body(user_rule_collection, "RuleCollection") + _json = self._serialize.body(rule_collection, "RuleCollection") - request = build_user_rule_collections_create_or_update_request( + request = build_admin_rule_collections_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -6154,7 +7819,7 @@ def create_or_update( return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements @@ -6165,7 +7830,7 @@ def delete( # pylint: disable=inconsistent-return-statements rule_collection_name: str, **kwargs: Any ) -> None: - """Deletes a user rule collection. + """Deletes an admin rule collection. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6195,7 +7860,7 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_user_rule_collections_delete_request( + request = build_admin_rule_collections_delete_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -6222,17 +7887,17 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore -class UserRulesOperations: +class AdminRulesOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`user_rules` attribute. + :attr:`admin_rules` attribute. """ models = _models @@ -6254,8 +7919,8 @@ def list( top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.BaseUserRule"]: - """Lists all user rules in a rule collection. + ) -> Iterable["_models.BaseAdminRule"]: + """List all network manager security configuration admin rules. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6275,16 +7940,16 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either BaseUserRule or the result of cls(response) + :return: An iterator like instance of either BaseAdminRule or the result of cls(response) :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule] + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.UserRuleListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.AdminRuleListResult] error_map = { 401: ClientAuthenticationError, @@ -6297,7 +7962,7 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_user_rules_list_request( + request = build_admin_rules_list_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -6315,17 +7980,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("UserRuleListResult", pipeline_response) + deserialized = self._deserialize("AdminRuleListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -6347,7 +8019,7 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules"} # type: ignore @distributed_trace def get( @@ -6358,8 +8030,8 @@ def get( rule_collection_name: str, rule_name: str, **kwargs: Any - ) -> _models.BaseUserRule: - """Gets a user rule. + ) -> _models.BaseAdminRule: + """Gets a network manager security configuration admin rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6373,8 +8045,8 @@ def get( :param rule_name: The name of the rule. Required. :type rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseUserRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule + :return: BaseAdminRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -6389,9 +8061,9 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseUserRule] + cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseAdminRule] - request = build_user_rules_get_request( + request = build_admin_rules_get_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -6416,14 +8088,14 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("BaseUserRule", pipeline_response) + deserialized = self._deserialize("BaseAdminRule", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore @overload def create_or_update( @@ -6433,12 +8105,12 @@ def create_or_update( configuration_name: str, rule_collection_name: str, rule_name: str, - user_rule: _models.BaseUserRule, + admin_rule: _models.BaseAdminRule, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.BaseUserRule: - """Creates or updates a user rule. + ) -> _models.BaseAdminRule: + """Creates or updates an admin rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6451,14 +8123,14 @@ def create_or_update( :type rule_collection_name: str :param rule_name: The name of the rule. Required. :type rule_name: str - :param user_rule: The user rule to create or update. Required. - :type user_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule + :param admin_rule: The admin rule to create or update. Required. + :type admin_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseUserRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule + :return: BaseAdminRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule :raises ~azure.core.exceptions.HttpResponseError: """ @@ -6470,12 +8142,12 @@ def create_or_update( configuration_name: str, rule_collection_name: str, rule_name: str, - user_rule: IO, + admin_rule: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.BaseUserRule: - """Creates or updates a user rule. + ) -> _models.BaseAdminRule: + """Creates or updates an admin rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6488,14 +8160,14 @@ def create_or_update( :type rule_collection_name: str :param rule_name: The name of the rule. Required. :type rule_name: str - :param user_rule: The user rule to create or update. Required. - :type user_rule: IO + :param admin_rule: The admin rule to create or update. Required. + :type admin_rule: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseUserRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule + :return: BaseAdminRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule :raises ~azure.core.exceptions.HttpResponseError: """ @@ -6507,10 +8179,10 @@ def create_or_update( configuration_name: str, rule_collection_name: str, rule_name: str, - user_rule: Union[_models.BaseUserRule, IO], + admin_rule: Union[_models.BaseAdminRule, IO], **kwargs: Any - ) -> _models.BaseUserRule: - """Creates or updates a user rule. + ) -> _models.BaseAdminRule: + """Creates or updates an admin rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6523,15 +8195,15 @@ def create_or_update( :type rule_collection_name: str :param rule_name: The name of the rule. Required. :type rule_name: str - :param user_rule: The user rule to create or update. Is either a model type or a IO type. + :param admin_rule: The admin rule to create or update. Is either a model type or a IO type. Required. - :type user_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule or IO + :type admin_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseUserRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseUserRule + :return: BaseAdminRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -6547,17 +8219,17 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseUserRule] + cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseAdminRule] content_type = content_type or "application/json" _json = None _content = None - if isinstance(user_rule, (IO, bytes)): - _content = user_rule + if isinstance(admin_rule, (IO, bytes)): + _content = admin_rule else: - _json = self._serialize.body(user_rule, "BaseUserRule") + _json = self._serialize.body(admin_rule, "BaseAdminRule") - request = build_user_rules_create_or_update_request( + request = build_admin_rules_create_or_update_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -6586,17 +8258,17 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("BaseUserRule", pipeline_response) + deserialized = self._deserialize("BaseAdminRule", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("BaseUserRule", pipeline_response) + deserialized = self._deserialize("BaseAdminRule", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements @@ -6608,7 +8280,7 @@ def delete( # pylint: disable=inconsistent-return-statements rule_name: str, **kwargs: Any ) -> None: - """Deletes a user rule. + """Deletes an admin rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -6640,7 +8312,7 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_user_rules_delete_request( + request = build_admin_rules_delete_request( resource_group_name=resource_group_name, network_manager_name=network_manager_name, configuration_name=configuration_name, @@ -6668,17 +8340,17 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityUserConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore -class SecurityAdminConfigurationsOperations: +class NetworkSecurityPerimetersOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`security_admin_configurations` attribute. + :attr:`network_security_perimeters` attribute. """ models = _models @@ -6690,119 +8362,19 @@ def __init__(self, *args, **kwargs): 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") - @distributed_trace - def list( - self, - resource_group_name: str, - network_manager_name: str, - top: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs: Any - ) -> Iterable["_models.SecurityConfiguration"]: - """Lists all the network manager security admin configurations in a network manager, in a - paginated format. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either SecurityConfiguration or the result of - cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfigurationListResult] - - error_map = { - 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_security_admin_configurations_list_request( - resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, - api_version=api_version, - template_url=self.list.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - else: - # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("SecurityConfigurationListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **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) - - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations"} # type: ignore - @distributed_trace def get( - self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any - ) -> _models.SecurityConfiguration: - """Retrieves a network manager security admin configuration. + self, resource_group_name: str, network_security_perimeter_name: str, **kwargs: Any + ) -> _models.NetworkSecurityPerimeter: + """Gets the specified network security perimeter by the name. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: SecurityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration + :return: NetworkSecurityPerimeter or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -6817,12 +8389,11 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfiguration] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeter] - request = build_security_admin_configurations_get_request( + request = build_network_security_perimeters_get_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, + network_security_perimeter_name=network_security_perimeter_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.get.metadata["url"], @@ -6842,44 +8413,40 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("SecurityConfiguration", pipeline_response) + deserialized = self._deserialize("NetworkSecurityPerimeter", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}"} # type: ignore @overload def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - security_admin_configuration: _models.SecurityConfiguration, + network_security_perimeter_name: str, + parameters: _models.NetworkSecurityPerimeter, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.SecurityConfiguration: - """Creates or updates a network manager security admin configuration. + ) -> _models.NetworkSecurityPerimeter: + """Creates or updates a Network Security Perimeter. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param security_admin_configuration: The security admin configuration to create or update. + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param parameters: Parameter supplied to create or update the network security perimeter. Required. - :type security_admin_configuration: - ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: SecurityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration + :return: NetworkSecurityPerimeter or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter :raises ~azure.core.exceptions.HttpResponseError: """ @@ -6887,30 +8454,27 @@ def create_or_update( def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - security_admin_configuration: IO, + network_security_perimeter_name: str, + parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.SecurityConfiguration: - """Creates or updates a network manager security admin configuration. + ) -> _models.NetworkSecurityPerimeter: + """Creates or updates a Network Security Perimeter. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param security_admin_configuration: The security admin configuration to create or update. + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param parameters: Parameter supplied to create or update the network security perimeter. Required. - :type security_admin_configuration: IO + :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: SecurityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration + :return: NetworkSecurityPerimeter or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter :raises ~azure.core.exceptions.HttpResponseError: """ @@ -6918,29 +8482,25 @@ def create_or_update( def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - security_admin_configuration: Union[_models.SecurityConfiguration, IO], + network_security_perimeter_name: str, + parameters: Union[_models.NetworkSecurityPerimeter, IO], **kwargs: Any - ) -> _models.SecurityConfiguration: - """Creates or updates a network manager security admin configuration. + ) -> _models.NetworkSecurityPerimeter: + """Creates or updates a Network Security Perimeter. :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param security_admin_configuration: The security admin configuration to create or update. Is + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param parameters: Parameter supplied to create or update the network security perimeter. Is either a model type or a IO type. Required. - :type security_admin_configuration: - ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration or IO + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: SecurityConfiguration or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.SecurityConfiguration + :return: NetworkSecurityPerimeter or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -6956,20 +8516,19 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.SecurityConfiguration] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeter] content_type = content_type or "application/json" _json = None _content = None - if isinstance(security_admin_configuration, (IO, bytes)): - _content = security_admin_configuration + if isinstance(parameters, (IO, bytes)): + _content = parameters else: - _json = self._serialize.body(security_admin_configuration, "SecurityConfiguration") + _json = self._serialize.body(parameters, "NetworkSecurityPerimeter") - request = build_security_admin_configurations_create_or_update_request( + request = build_network_security_perimeters_create_or_update_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, + network_security_perimeter_name=network_security_perimeter_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, @@ -6993,30 +8552,28 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("SecurityConfiguration", pipeline_response) + deserialized = self._deserialize("NetworkSecurityPerimeter", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("SecurityConfiguration", pipeline_response) + deserialized = self._deserialize("NetworkSecurityPerimeter", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, network_manager_name: str, configuration_name: str, **kwargs: Any + self, resource_group_name: str, network_security_perimeter_name: str, **kwargs: Any ) -> None: - """Deletes a network manager security admin configuration. + """Deletes a network security perimeter. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) :rtype: None @@ -7036,10 +8593,9 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_security_admin_configurations_delete_request( + request = build_network_security_perimeters_delete_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, + network_security_perimeter_name=network_security_perimeter_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.delete.metadata["url"], @@ -7062,46 +8618,109 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}"} # type: ignore + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}"} # type: ignore + @distributed_trace + def list_by_subscription( + self, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any + ) -> Iterable["_models.NetworkSecurityPerimeter"]: + """List all network security perimeters in a subscription. -class AdminRuleCollectionsOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NetworkSecurityPerimeter or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`admin_rule_collections` attribute. - """ + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeterListResult] - models = _models + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) - 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") + def prepare_request(next_link=None): + if not next_link: + + request = build_network_security_perimeters_list_by_subscription_request( + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list_by_subscription.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("NetworkSecurityPerimeterListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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) + + list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkSecurityPerimeters"} # type: ignore @distributed_trace def list( - self, - resource_group_name: str, - network_manager_name: str, - configuration_name: str, - top: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs: Any - ) -> Iterable["_models.RuleCollection"]: - """Lists all the rule collections in a security admin configuration, in a paginated format. + self, resource_group_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any + ) -> Iterable["_models.NetworkSecurityPerimeter"]: + """List network security perimeters in a resource group. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str :param top: An optional query parameter which specifies the maximum number of records to be returned by the server. Default value is None. :type top: int @@ -7111,16 +8730,17 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either RuleCollection or the result of cls(response) + :return: An iterator like instance of either NetworkSecurityPerimeter or the result of + cls(response) :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection] + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollectionListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeterListResult] error_map = { 401: ClientAuthenticationError, @@ -7133,10 +8753,8 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_admin_rule_collections_list_request( + request = build_network_security_perimeters_list_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, subscription_id=self._config.subscription_id, top=top, skip_token=skip_token, @@ -7150,17 +8768,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("RuleCollectionListResult", pipeline_response) + deserialized = self._deserialize("NetworkSecurityPerimeterListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -7182,31 +8807,43 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters"} # type: ignore + + +class NspProfilesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`nsp_profiles` attribute. + """ + + models = _models + + 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") @distributed_trace def get( - self, - resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - **kwargs: Any - ) -> _models.RuleCollection: - """Gets a network manager security admin configuration rule collection. + self, resource_group_name: str, network_security_perimeter_name: str, profile_name: str, **kwargs: Any + ) -> _models.NspProfile: + """Gets the specified NSP profile. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: RuleCollection or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + :return: NspProfile or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -7221,13 +8858,12 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollection] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspProfile] - request = build_admin_rule_collections_get_request( + request = build_nsp_profiles_get_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.get.metadata["url"], @@ -7247,46 +8883,43 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("RuleCollection", pipeline_response) + deserialized = self._deserialize("NspProfile", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}"} # type: ignore @overload def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_collection: _models.RuleCollection, + network_security_perimeter_name: str, + profile_name: str, + parameters: _models.NspProfile, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.RuleCollection: - """Creates or updates an admin rule collection. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_collection: The Rule Collection to create or update. Required. - :type rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + ) -> _models.NspProfile: + """Creates or updates a network profile. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param parameters: Parameters that hold the NspProfile resource to be created/updated. + Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: RuleCollection or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + :return: NspProfile or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile :raises ~azure.core.exceptions.HttpResponseError: """ @@ -7294,33 +8927,30 @@ def create_or_update( def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_collection: IO, + network_security_perimeter_name: str, + profile_name: str, + parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.RuleCollection: - """Creates or updates an admin rule collection. + ) -> _models.NspProfile: + """Creates or updates a network profile. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_collection: The Rule Collection to create or update. Required. - :type rule_collection: IO + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param parameters: Parameters that hold the NspProfile resource to be created/updated. + Required. + :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: RuleCollection or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + :return: NspProfile or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile :raises ~azure.core.exceptions.HttpResponseError: """ @@ -7328,32 +8958,28 @@ def create_or_update( def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_collection: Union[_models.RuleCollection, IO], + network_security_perimeter_name: str, + profile_name: str, + parameters: Union[_models.NspProfile, IO], **kwargs: Any - ) -> _models.RuleCollection: - """Creates or updates an admin rule collection. + ) -> _models.NspProfile: + """Creates or updates a network profile. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_collection: The Rule Collection to create or update. Is either a model type or a IO - type. Required. - :type rule_collection: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection or IO + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param parameters: Parameters that hold the NspProfile resource to be created/updated. Is + either a model type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: RuleCollection or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.RuleCollection + :return: NspProfile or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -7369,21 +8995,20 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.RuleCollection] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspProfile] content_type = content_type or "application/json" _json = None _content = None - if isinstance(rule_collection, (IO, bytes)): - _content = rule_collection + if isinstance(parameters, (IO, bytes)): + _content = parameters else: - _json = self._serialize.body(rule_collection, "RuleCollection") + _json = self._serialize.body(parameters, "NspProfile") - request = build_admin_rule_collections_create_or_update_request( + request = build_nsp_profiles_create_or_update_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, @@ -7407,38 +9032,30 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("RuleCollection", pipeline_response) + deserialized = self._deserialize("NspProfile", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("RuleCollection", pipeline_response) + deserialized = self._deserialize("NspProfile", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - **kwargs: Any + self, resource_group_name: str, network_security_perimeter_name: str, profile_name: str, **kwargs: Any ) -> None: - """Deletes an admin rule collection. + """Deletes an NSP profile. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) :rtype: None @@ -7458,11 +9075,10 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_admin_rule_collections_delete_request( + request = build_nsp_profiles_delete_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.delete.metadata["url"], @@ -7485,50 +9101,23 @@ def delete( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}"} # type: ignore - - -class AdminRulesOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`admin_rules` attribute. - """ - - models = _models - - 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") + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}"} # type: ignore @distributed_trace def list( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, + network_security_perimeter_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.BaseAdminRule"]: - """List all network manager security configuration admin rules. + ) -> Iterable["_models.NspProfile"]: + """Lists the NSP profiles in the specified network security perimeter. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str :param top: An optional query parameter which specifies the maximum number of records to be returned by the server. Default value is None. :type top: int @@ -7538,16 +9127,15 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either BaseAdminRule or the result of cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule] + :return: An iterator like instance of either NspProfile or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspProfile] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.AdminRuleListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspProfileListResult] error_map = { 401: ClientAuthenticationError, @@ -7560,11 +9148,9 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_admin_rules_list_request( + request = build_nsp_profiles_list_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, + network_security_perimeter_name=network_security_perimeter_name, subscription_id=self._config.subscription_id, top=top, skip_token=skip_token, @@ -7578,17 +9164,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("AdminRuleListResult", pipeline_response) + deserialized = self._deserialize("NspProfileListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -7610,34 +9203,50 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles"} # type: ignore + + +class NspAccessRulesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`nsp_access_rules` attribute. + """ + + models = _models + + 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") @distributed_trace def get( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_name: str, + network_security_perimeter_name: str, + profile_name: str, + access_rule_name: str, **kwargs: Any - ) -> _models.BaseAdminRule: - """Gets a network manager security configuration admin rule. + ) -> _models.NspAccessRule: + """Gets the specified NSP access rule by name. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_name: The name of the rule. Required. - :type rule_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param access_rule_name: The name of the NSP access rule. Required. + :type access_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseAdminRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule + :return: NspAccessRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -7652,14 +9261,13 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseAdminRule] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAccessRule] - request = build_admin_rules_get_request( + request = build_nsp_access_rules_get_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, - rule_name=rule_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, + access_rule_name=access_rule_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.get.metadata["url"], @@ -7679,49 +9287,46 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("BaseAdminRule", pipeline_response) + deserialized = self._deserialize("NspAccessRule", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}"} # type: ignore @overload def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_name: str, - admin_rule: _models.BaseAdminRule, + network_security_perimeter_name: str, + profile_name: str, + access_rule_name: str, + parameters: _models.NspAccessRule, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.BaseAdminRule: - """Creates or updates an admin rule. + ) -> _models.NspAccessRule: + """Creates or updates a network access rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_name: The name of the rule. Required. - :type rule_name: str - :param admin_rule: The admin rule to create or update. Required. - :type admin_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param access_rule_name: The name of the NSP access rule. Required. + :type access_rule_name: str + :param parameters: Parameters that hold the NspAccessRule resource to be created/updated. + Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseAdminRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule + :return: NspAccessRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule :raises ~azure.core.exceptions.HttpResponseError: """ @@ -7729,36 +9334,33 @@ def create_or_update( def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_name: str, - admin_rule: IO, + network_security_perimeter_name: str, + profile_name: str, + access_rule_name: str, + parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.BaseAdminRule: - """Creates or updates an admin rule. + ) -> _models.NspAccessRule: + """Creates or updates a network access rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_name: The name of the rule. Required. - :type rule_name: str - :param admin_rule: The admin rule to create or update. Required. - :type admin_rule: IO + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param access_rule_name: The name of the NSP access rule. Required. + :type access_rule_name: str + :param parameters: Parameters that hold the NspAccessRule resource to be created/updated. + Required. + :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseAdminRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule + :return: NspAccessRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule :raises ~azure.core.exceptions.HttpResponseError: """ @@ -7766,35 +9368,31 @@ def create_or_update( def create_or_update( self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_name: str, - admin_rule: Union[_models.BaseAdminRule, IO], + network_security_perimeter_name: str, + profile_name: str, + access_rule_name: str, + parameters: Union[_models.NspAccessRule, IO], **kwargs: Any - ) -> _models.BaseAdminRule: - """Creates or updates an admin rule. + ) -> _models.NspAccessRule: + """Creates or updates a network access rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_name: The name of the rule. Required. - :type rule_name: str - :param admin_rule: The admin rule to create or update. Is either a model type or a IO type. - Required. - :type admin_rule: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule or IO + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param access_rule_name: The name of the NSP access rule. Required. + :type access_rule_name: str + :param parameters: Parameters that hold the NspAccessRule resource to be created/updated. Is + either a model type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: BaseAdminRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.BaseAdminRule + :return: NspAccessRule or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -7810,22 +9408,21 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.BaseAdminRule] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAccessRule] content_type = content_type or "application/json" _json = None _content = None - if isinstance(admin_rule, (IO, bytes)): - _content = admin_rule + if isinstance(parameters, (IO, bytes)): + _content = parameters else: - _json = self._serialize.body(admin_rule, "BaseAdminRule") + _json = self._serialize.body(parameters, "NspAccessRule") - request = build_admin_rules_create_or_update_request( + request = build_nsp_access_rules_create_or_update_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, - rule_name=rule_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, + access_rule_name=access_rule_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, @@ -7849,41 +9446,37 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("BaseAdminRule", pipeline_response) + deserialized = self._deserialize("NspAccessRule", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("BaseAdminRule", pipeline_response) + deserialized = self._deserialize("NspAccessRule", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}"} # type: ignore @distributed_trace def delete( # pylint: disable=inconsistent-return-statements self, resource_group_name: str, - network_manager_name: str, - configuration_name: str, - rule_collection_name: str, - rule_name: str, + network_security_perimeter_name: str, + profile_name: str, + access_rule_name: str, **kwargs: Any ) -> None: - """Deletes an admin rule. + """Deletes an NSP access rule. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str - :param network_manager_name: The name of the network manager. Required. - :type network_manager_name: str - :param configuration_name: The name of the network manager security Configuration. Required. - :type configuration_name: str - :param rule_collection_name: The name of the network manager security Configuration rule - collection. Required. - :type rule_collection_name: str - :param rule_name: The name of the rule. Required. - :type rule_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param access_rule_name: The name of the NSP access rule. Required. + :type access_rule_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) :rtype: None @@ -7903,12 +9496,11 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_admin_rules_delete_request( + request = build_nsp_access_rules_delete_request( resource_group_name=resource_group_name, - network_manager_name=network_manager_name, - configuration_name=configuration_name, - rule_collection_name=rule_collection_name, - rule_name=rule_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, + access_rule_name=access_rule_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.delete.metadata["url"], @@ -7918,30 +9510,137 @@ def delete( # pylint: disable=inconsistent-return-statements request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs - ) + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + + response = pipeline_response.http_response + + 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) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}"} # type: ignore + + @distributed_trace + def list( + self, + resource_group_name: str, + network_security_perimeter_name: str, + profile_name: str, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> Iterable["_models.NspAccessRule"]: + """Lists the NSP access rules in the specified NSP profile. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param profile_name: The name of the NSP profile. Required. + :type profile_name: str + :param top: An optional query parameter which specifies the maximum number of records to be + returned by the server. Default value is None. + :type top: int + :param skip_token: SkipToken is only used if a previous operation returned a partial result. If + a previous response contains a nextLink element, the value of the nextLink element will include + a skipToken parameter that specifies a starting point to use for subsequent calls. Default + value is None. + :type skip_token: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either NspAccessRule or the result of cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAccessRuleListResult] + + error_map = { + 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_nsp_access_rules_list_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + profile_name=profile_name, + subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + api_version=api_version, + template_url=self.list.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + 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 = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("NspAccessRuleListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) - response = pipeline_response.http_response + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **kwargs + ) + response = pipeline_response.http_response - 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) + 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) - if cls: - return cls(pipeline_response, None, {}) + return pipeline_response - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/securityAdminConfigurations/{configurationName}/ruleCollections/{ruleCollectionName}/rules/{ruleName}"} # type: ignore + return ItemPaged(get_next, extract_data) + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules"} # type: ignore -class NetworkSecurityPerimetersOperations: + +class NspAssociationsOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`network_security_perimeters` attribute. + :attr:`nsp_associations` attribute. """ models = _models @@ -7955,17 +9654,19 @@ def __init__(self, *args, **kwargs): @distributed_trace def get( - self, resource_group_name: str, network_security_perimeter_name: str, **kwargs: Any - ) -> _models.NetworkSecurityPerimeter: - """Gets the specified network security perimeter by the name. + self, resource_group_name: str, network_security_perimeter_name: str, association_name: str, **kwargs: Any + ) -> _models.NspAssociation: + """Gets the specified NSP association by name. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str + :param association_name: The name of the NSP association. Required. + :type association_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkSecurityPerimeter or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter + :return: NspAssociation or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -7980,11 +9681,12 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeter] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAssociation] - request = build_network_security_perimeters_get_request( + request = build_nsp_associations_get_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, + association_name=association_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self.get.metadata["url"], @@ -8004,40 +9706,43 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NetworkSecurityPerimeter", pipeline_response) + deserialized = self._deserialize("NspAssociation", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore @overload def create_or_update( self, resource_group_name: str, network_security_perimeter_name: str, - parameters: _models.NetworkSecurityPerimeter, + association_name: str, + parameters: _models.NspAssociation, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkSecurityPerimeter: - """Creates or updates a Network Security Perimeter. + ) -> _models.NspAssociation: + """Creates or updates a NSP resource association. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param parameters: Parameter supplied to create or update the network security perimeter. + :param association_name: The name of the NSP association. Required. + :type association_name: str + :param parameters: Parameters that hold the NspAssociation resource to be created/updated. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkSecurityPerimeter or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter + :return: NspAssociation or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation :raises ~azure.core.exceptions.HttpResponseError: """ @@ -8046,26 +9751,29 @@ def create_or_update( self, resource_group_name: str, network_security_perimeter_name: str, + association_name: str, parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NetworkSecurityPerimeter: - """Creates or updates a Network Security Perimeter. + ) -> _models.NspAssociation: + """Creates or updates a NSP resource association. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param parameters: Parameter supplied to create or update the network security perimeter. + :param association_name: The name of the NSP association. Required. + :type association_name: str + :param parameters: Parameters that hold the NspAssociation resource to be created/updated. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkSecurityPerimeter or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter + :return: NspAssociation or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation :raises ~azure.core.exceptions.HttpResponseError: """ @@ -8074,24 +9782,27 @@ def create_or_update( self, resource_group_name: str, network_security_perimeter_name: str, - parameters: Union[_models.NetworkSecurityPerimeter, IO], + association_name: str, + parameters: Union[_models.NspAssociation, IO], **kwargs: Any - ) -> _models.NetworkSecurityPerimeter: - """Creates or updates a Network Security Perimeter. + ) -> _models.NspAssociation: + """Creates or updates a NSP resource association. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param parameters: Parameter supplied to create or update the network security perimeter. Is + :param association_name: The name of the NSP association. Required. + :type association_name: str + :param parameters: Parameters that hold the NspAssociation resource to be created/updated. Is either a model type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter or IO + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NetworkSecurityPerimeter or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter + :return: NspAssociation or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -8107,7 +9818,7 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeter] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAssociation] content_type = content_type or "application/json" _json = None @@ -8115,11 +9826,12 @@ def create_or_update( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "NetworkSecurityPerimeter") + _json = self._serialize.body(parameters, "NspAssociation") - request = build_network_security_perimeters_create_or_update_request( + request = build_nsp_associations_create_or_update_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, + association_name=association_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, @@ -8143,33 +9855,21 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("NetworkSecurityPerimeter", pipeline_response) + deserialized = self._deserialize("NspAssociation", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("NetworkSecurityPerimeter", pipeline_response) + deserialized = self._deserialize("NspAssociation", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore - @distributed_trace - def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, network_security_perimeter_name: str, **kwargs: Any + def _delete_initial( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, association_name: str, **kwargs: Any ) -> None: - """Deletes a network security perimeter. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None or the result of cls(response) - :rtype: None - :raises ~azure.core.exceptions.HttpResponseError: - """ error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -8184,12 +9884,13 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_network_security_perimeters_delete_request( + request = build_nsp_associations_delete_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, + association_name=association_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.delete.metadata["url"], + template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) @@ -8202,109 +9903,100 @@ def delete( # pylint: disable=inconsistent-return-statements response = pipeline_response.http_response - if response.status_code not in [200, 204]: + if response.status_code not in [200, 202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + response_headers = {} + if response.status_code == 202: + response_headers["location"] = self._deserialize("str", response.headers.get("location")) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, response_headers) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}"} # type: ignore + _delete_initial.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore @distributed_trace - def list_by_subscription( - self, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.NetworkSecurityPerimeter"]: - """List all network security perimeters in a subscription. + def begin_delete( + self, resource_group_name: str, network_security_perimeter_name: str, association_name: str, **kwargs: Any + ) -> LROPoller[None]: + """Deletes an NSP association resource. - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param association_name: The name of the NSP association. Required. + :type association_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NetworkSecurityPerimeter or the result of - cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter] + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this + operation to not poll, or pass in your own initialized polling object for a personal polling + strategy. + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no + Retry-After header is present. + :return: An instance of LROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeterListResult] - - error_map = { - 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_network_security_perimeters_list_by_subscription_request( - subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, - api_version=api_version, - template_url=self.list_by_subscription.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - else: - # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("NetworkSecurityPerimeterListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs + cls = kwargs.pop("cls", None) # type: ClsType[None] + polling = kwargs.pop("polling", True) # type: Union[bool, PollingMethod] + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token = kwargs.pop("continuation_token", None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( # type: ignore + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + association_name=association_name, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **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) + kwargs.pop("error_map", None) - return pipeline_response + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) - return ItemPaged(get_next, extract_data) + if polling is True: + polling_method = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) # type: PollingMethod + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkSecurityPerimeters"} # type: ignore + begin_delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore @distributed_trace def list( - self, resource_group_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.NetworkSecurityPerimeter"]: - """List network security perimeters in a resource group. + self, + resource_group_name: str, + network_security_perimeter_name: str, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> Iterable["_models.NspAssociation"]: + """Lists the NSP resource associations. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str :param top: An optional query parameter which specifies the maximum number of records to be returned by the server. Default value is None. :type top: int @@ -8314,17 +10006,16 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NetworkSecurityPerimeter or the result of - cls(response) + :return: An iterator like instance of either NspAssociation or the result of cls(response) :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NetworkSecurityPerimeter] + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NetworkSecurityPerimeterListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAssociationsListResult] error_map = { 401: ClientAuthenticationError, @@ -8337,8 +10028,9 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_network_security_perimeters_list_request( + request = build_nsp_associations_list_request( resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, subscription_id=self._config.subscription_id, top=top, skip_token=skip_token, @@ -8352,17 +10044,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("NetworkSecurityPerimeterListResult", pipeline_response) + deserialized = self._deserialize("NspAssociationsListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -8384,17 +10083,17 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations"} # type: ignore -class NspProfilesOperations: +class NspAssociationReconcileOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`nsp_profiles` attribute. + :attr:`nsp_association_reconcile` attribute. """ models = _models @@ -8407,235 +10106,27 @@ def __init__(self, *args, **kwargs): self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def get( - self, resource_group_name: str, network_security_perimeter_name: str, profile_name: str, **kwargs: Any - ) -> _models.NspProfile: - """Gets the specified NSP profile. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspProfile or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspProfile] - - request = build_nsp_profiles_get_request( - resource_group_name=resource_group_name, - network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.get.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **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("NspProfile", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}"} # type: ignore - - @overload - def create_or_update( - self, - resource_group_name: str, - network_security_perimeter_name: str, - profile_name: str, - parameters: _models.NspProfile, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.NspProfile: - """Creates or updates a network profile. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param parameters: Parameters that hold the NspProfile resource to be created/updated. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspProfile or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @overload - def create_or_update( - self, - resource_group_name: str, - network_security_perimeter_name: str, - profile_name: str, - parameters: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.NspProfile: - """Creates or updates a network profile. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param parameters: Parameters that hold the NspProfile resource to be created/updated. - Required. - :type parameters: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspProfile or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile - :raises ~azure.core.exceptions.HttpResponseError: - """ - - @distributed_trace - def create_or_update( + def post( self, resource_group_name: str, - network_security_perimeter_name: str, - profile_name: str, - parameters: Union[_models.NspProfile, IO], - **kwargs: Any - ) -> _models.NspProfile: - """Creates or updates a network profile. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param parameters: Parameters that hold the NspProfile resource to be created/updated. Is - either a model type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspProfile or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspProfile - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspProfile] - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters - else: - _json = self._serialize.body(parameters, "NspProfile") - - request = build_nsp_profiles_create_or_update_request( - resource_group_name=resource_group_name, - network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.create_or_update.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **kwargs - ) - - response = pipeline_response.http_response - - 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) - - if response.status_code == 200: - deserialized = self._deserialize("NspProfile", pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize("NspProfile", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}"} # type: ignore - - @distributed_trace - def delete( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, network_security_perimeter_name: str, profile_name: str, **kwargs: Any - ) -> None: - """Deletes an NSP profile. + network_security_perimeter_name: str, + association_name: str, + parameters: JSON, + **kwargs: Any + ) -> JSON: + """Reconcile NSP association. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str + :param association_name: The name of the NSP association. Required. + :type association_name: str + :param parameters: Parameters for NSP association reconcile. Required. + :type parameters: JSON :keyword callable cls: A custom type or function that will be passed the direct response - :return: None or the result of cls(response) - :rtype: None + :return: JSON or the result of cls(response) + :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -8646,19 +10137,24 @@ def delete( # pylint: disable=inconsistent-return-statements } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[None] + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", "application/json")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[JSON] - request = build_nsp_profiles_delete_request( + _json = self._serialize.body(parameters, "object") + + request = build_nsp_association_reconcile_post_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, + association_name=association_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.delete.metadata["url"], + content_type=content_type, + json=_json, + template_url=self.post.metadata["url"], headers=_headers, params=_params, ) @@ -8671,48 +10167,58 @@ def delete( # pylint: disable=inconsistent-return-statements response = pipeline_response.http_response - if response.status_code not in [200, 204]: + 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("object", pipeline_response) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, deserialized, {}) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}"} # type: ignore + return deserialized + + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}/reconcile"} # type: ignore + + +class PerimeterAssociableResourceTypesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`perimeter_associable_resource_types` attribute. + """ + + models = _models + + 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") @distributed_trace - def list( - self, - resource_group_name: str, - network_security_perimeter_name: str, - top: Optional[int] = None, - skip_token: Optional[str] = None, - **kwargs: Any - ) -> Iterable["_models.NspProfile"]: - """Lists the NSP profiles in the specified network security perimeter. + def list(self, location: str, **kwargs: Any) -> Iterable["_models.PerimeterAssociableResource"]: + """Gets the list of resources that are onboarded with NSP. These resources can be associated with + a network security perimeter. - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param top: An optional query parameter which specifies the maximum number of records to be - returned by the server. Default value is None. - :type top: int - :param skip_token: SkipToken is only used if a previous operation returned a partial result. If - a previous response contains a nextLink element, the value of the nextLink element will include - a skipToken parameter that specifies a starting point to use for subsequent calls. Default - value is None. - :type skip_token: str + :param location: The location of network security perimeter. Required. + :type location: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NspProfile or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspProfile] + :return: An iterator like instance of either PerimeterAssociableResource or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.PerimeterAssociableResource] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspProfileListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.PerimeterAssociableResourcesListResult] error_map = { 401: ClientAuthenticationError, @@ -8725,12 +10231,9 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_nsp_profiles_list_request( - resource_group_name=resource_group_name, - network_security_perimeter_name=network_security_perimeter_name, + request = build_perimeter_associable_resource_types_list_request( + location=location, subscription_id=self._config.subscription_id, - top=top, - skip_token=skip_token, api_version=api_version, template_url=self.list.metadata["url"], headers=_headers, @@ -8741,17 +10244,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("NspProfileListResult", pipeline_response) + deserialized = self._deserialize("PerimeterAssociableResourcesListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -8773,17 +10283,17 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/perimeterAssociableResourceTypes"} # type: ignore -class NspAccessRulesOperations: +class NspAccessRulesReconcileOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`nsp_access_rules` attribute. + :attr:`nsp_access_rules_reconcile` attribute. """ models = _models @@ -8796,15 +10306,16 @@ def __init__(self, *args, **kwargs): self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def get( + def post( self, resource_group_name: str, network_security_perimeter_name: str, profile_name: str, access_rule_name: str, + parameters: JSON, **kwargs: Any - ) -> _models.NspAccessRule: - """Gets the specified NSP access rule by name. + ) -> JSON: + """Reconcile NSP access rules. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -8814,9 +10325,11 @@ def get( :type profile_name: str :param access_rule_name: The name of the NSP access rule. Required. :type access_rule_name: str + :param parameters: Parameters for NSP access rule reconcile. Required. + :type parameters: JSON :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAccessRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule + :return: JSON or the result of cls(response) + :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -8827,19 +10340,107 @@ def get( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAccessRule] + content_type = kwargs.pop("content_type", _headers.pop("Content-Type", "application/json")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[JSON] - request = build_nsp_access_rules_get_request( + _json = self._serialize.body(parameters, "object") + + request = build_nsp_access_rules_reconcile_post_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, profile_name=profile_name, access_rule_name=access_rule_name, subscription_id=self._config.subscription_id, api_version=api_version, + content_type=content_type, + json=_json, + template_url=self.post.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) # type: ignore + + pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access + request, stream=False, **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("object", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}/reconcile"} # type: ignore + + +class NspLinksOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`nsp_links` attribute. + """ + + models = _models + + 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") + + @distributed_trace + def get( + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> _models.NspLink: + """Gets the specified NSP link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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 = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLink] + + request = build_nsp_links_get_request( + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + subscription_id=self._config.subscription_id, + api_version=api_version, template_url=self.get.metadata["url"], headers=_headers, params=_params, @@ -8857,46 +10458,42 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NspAccessRule", pipeline_response) + deserialized = self._deserialize("NspLink", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore @overload def create_or_update( self, resource_group_name: str, network_security_perimeter_name: str, - profile_name: str, - access_rule_name: str, - parameters: _models.NspAccessRule, + link_name: str, + parameters: _models.NspLink, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NspAccessRule: - """Creates or updates a network access rule. + ) -> _models.NspLink: + """Creates or updates NSP link resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param access_rule_name: The name of the NSP access rule. Required. - :type access_rule_name: str - :param parameters: Parameters that hold the NspAccessRule resource to be created/updated. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule + :param link_name: The name of the NSP link. Required. + :type link_name: str + :param parameters: Parameters that hold the NspLink resource to be created/updated. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAccessRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink :raises ~azure.core.exceptions.HttpResponseError: """ @@ -8905,32 +10502,28 @@ def create_or_update( self, resource_group_name: str, network_security_perimeter_name: str, - profile_name: str, - access_rule_name: str, + link_name: str, parameters: IO, *, content_type: str = "application/json", **kwargs: Any - ) -> _models.NspAccessRule: - """Creates or updates a network access rule. + ) -> _models.NspLink: + """Creates or updates NSP link resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param access_rule_name: The name of the NSP access rule. Required. - :type access_rule_name: str - :param parameters: Parameters that hold the NspAccessRule resource to be created/updated. - Required. + :param link_name: The name of the NSP link. Required. + :type link_name: str + :param parameters: Parameters that hold the NspLink resource to be created/updated. Required. :type parameters: IO :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAccessRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink :raises ~azure.core.exceptions.HttpResponseError: """ @@ -8939,30 +10532,27 @@ def create_or_update( self, resource_group_name: str, network_security_perimeter_name: str, - profile_name: str, - access_rule_name: str, - parameters: Union[_models.NspAccessRule, IO], + link_name: str, + parameters: Union[_models.NspLink, IO], **kwargs: Any - ) -> _models.NspAccessRule: - """Creates or updates a network access rule. + ) -> _models.NspLink: + """Creates or updates NSP link resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param access_rule_name: The name of the NSP access rule. Required. - :type access_rule_name: str - :param parameters: Parameters that hold the NspAccessRule resource to be created/updated. Is - either a model type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule or IO + :param link_name: The name of the NSP link. Required. + :type link_name: str + :param parameters: Parameters that hold the NspLink resource to be created/updated. Is either a + model type or a IO type. Required. + :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. Default value is None. :paramtype content_type: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAccessRule or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule + :return: NspLink or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLink :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -8978,7 +10568,7 @@ def create_or_update( api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAccessRule] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLink] content_type = content_type or "application/json" _json = None @@ -8986,13 +10576,12 @@ def create_or_update( if isinstance(parameters, (IO, bytes)): _content = parameters else: - _json = self._serialize.body(parameters, "NspAccessRule") + _json = self._serialize.body(parameters, "NspLink") - request = build_nsp_access_rules_create_or_update_request( + request = build_nsp_links_create_or_update_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, - access_rule_name=access_rule_name, + link_name=link_name, subscription_id=self._config.subscription_id, api_version=api_version, content_type=content_type, @@ -9016,42 +10605,21 @@ def create_or_update( raise HttpResponseError(response=response, error_format=ARMErrorFormat) if response.status_code == 200: - deserialized = self._deserialize("NspAccessRule", pipeline_response) + deserialized = self._deserialize("NspLink", pipeline_response) if response.status_code == 201: - deserialized = self._deserialize("NspAccessRule", pipeline_response) + deserialized = self._deserialize("NspLink", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}"} # type: ignore + create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore - @distributed_trace - def delete( # pylint: disable=inconsistent-return-statements - self, - resource_group_name: str, - network_security_perimeter_name: str, - profile_name: str, - access_rule_name: str, - **kwargs: Any + def _delete_initial( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any ) -> None: - """Deletes an NSP access rule. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param access_rule_name: The name of the NSP access rule. Required. - :type access_rule_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None or the result of cls(response) - :rtype: None - :raises ~azure.core.exceptions.HttpResponseError: - """ error_map = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -9066,14 +10634,13 @@ def delete( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_nsp_access_rules_delete_request( + request = build_nsp_links_delete_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, - access_rule_name=access_rule_name, + link_name=link_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.delete.metadata["url"], + template_url=self._delete_initial.metadata["url"], headers=_headers, params=_params, ) @@ -9086,33 +10653,102 @@ def delete( # pylint: disable=inconsistent-return-statements response = pipeline_response.http_response - if response.status_code not in [200, 204]: + if response.status_code not in [200, 202, 204]: map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) + response_headers = {} + if response.status_code == 202: + response_headers["location"] = self._deserialize("str", response.headers.get("location")) + if cls: - return cls(pipeline_response, None, {}) + return cls(pipeline_response, None, response_headers) - delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}"} # type: ignore + _delete_initial.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore + + @distributed_trace + def begin_delete( + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> LROPoller[None]: + """Deletes an NSP Link resource. + + :param resource_group_name: The name of the resource group. Required. + :type resource_group_name: str + :param network_security_perimeter_name: The name of the network security perimeter. Required. + :type network_security_perimeter_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this + operation to not poll, or pass in your own initialized polling object for a personal polling + strategy. + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no + Retry-After header is present. + :return: An instance of LROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str + cls = kwargs.pop("cls", None) # type: ClsType[None] + polling = kwargs.pop("polling", True) # type: Union[bool, PollingMethod] + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token = kwargs.pop("continuation_token", None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( # type: ignore + resource_group_name=resource_group_name, + network_security_perimeter_name=network_security_perimeter_name, + link_name=link_name, + api_version=api_version, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) + + if polling is True: + polling_method = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) # type: PollingMethod + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + + begin_delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}"} # type: ignore @distributed_trace def list( self, resource_group_name: str, network_security_perimeter_name: str, - profile_name: str, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.NspAccessRule"]: - """Lists the NSP access rules in the specified NSP profile. + ) -> Iterable["_models.NspLink"]: + """Lists the NSP Link resources in the specified network security perimeter. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str :param top: An optional query parameter which specifies the maximum number of records to be returned by the server. Default value is None. :type top: int @@ -9122,16 +10758,15 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NspAccessRule or the result of cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspAccessRule] + :return: An iterator like instance of either NspLink or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspLink] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAccessRuleListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLinkListResult] error_map = { 401: ClientAuthenticationError, @@ -9144,10 +10779,9 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_nsp_access_rules_list_request( + request = build_nsp_links_list_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, subscription_id=self._config.subscription_id, top=top, skip_token=skip_token, @@ -9161,17 +10795,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) + _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", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("NspAccessRuleListResult", pipeline_response) + deserialized = self._deserialize("NspLinkListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -9193,17 +10834,17 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links"} # type: ignore -class NspAssociationsOperations: +class NspLinkReconcileOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`nsp_associations` attribute. + :attr:`nsp_link_reconcile` attribute. """ models = _models @@ -9216,20 +10857,20 @@ def __init__(self, *args, **kwargs): self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def get( - self, resource_group_name: str, network_security_perimeter_name: str, association_name: str, **kwargs: Any - ) -> _models.NspAssociation: - """Gets the specified NSP association by name. + def post( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_name: str, **kwargs: Any + ) -> None: + """Reconcile NSP link resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param association_name: The name of the NSP association. Required. - :type association_name: str + :param link_name: The name of the NSP link. Required. + :type link_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAssociation or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation + :return: None or the result of cls(response) + :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -9244,15 +10885,15 @@ def get( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAssociation] + cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_nsp_associations_get_request( + request = build_nsp_link_reconcile_post_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - association_name=association_name, + link_name=link_name, subscription_id=self._config.subscription_id, api_version=api_version, - template_url=self.get.metadata["url"], + template_url=self.post.metadata["url"], headers=_headers, params=_params, ) @@ -9269,103 +10910,46 @@ def get( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("NspAssociation", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) + return cls(pipeline_response, None, {}) - return deserialized + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/links/{linkName}/reconcile"} # type: ignore - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore - @overload - def create_or_update( - self, - resource_group_name: str, - network_security_perimeter_name: str, - association_name: str, - parameters: _models.NspAssociation, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.NspAssociation: - """Creates or updates a NSP resource association. +class NspLinkReferencesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param association_name: The name of the NSP association. Required. - :type association_name: str - :param parameters: Parameters that hold the NspAssociation resource to be created/updated. - Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation - :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAssociation or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation - :raises ~azure.core.exceptions.HttpResponseError: - """ + Instead, you should access the following operations through + :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s + :attr:`nsp_link_references` attribute. + """ - @overload - def create_or_update( - self, - resource_group_name: str, - network_security_perimeter_name: str, - association_name: str, - parameters: IO, - *, - content_type: str = "application/json", - **kwargs: Any - ) -> _models.NspAssociation: - """Creates or updates a NSP resource association. + models = _models - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param association_name: The name of the NSP association. Required. - :type association_name: str - :param parameters: Parameters that hold the NspAssociation resource to be created/updated. - Required. - :type parameters: IO - :keyword content_type: Body Parameter content-type. Content type parameter for binary body. - Default value is "application/json". - :paramtype content_type: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAssociation or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation - :raises ~azure.core.exceptions.HttpResponseError: - """ + 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") @distributed_trace - def create_or_update( - self, - resource_group_name: str, - network_security_perimeter_name: str, - association_name: str, - parameters: Union[_models.NspAssociation, IO], - **kwargs: Any - ) -> _models.NspAssociation: - """Creates or updates a NSP resource association. + def get( + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any + ) -> _models.NspLinkReference: + """Gets the specified NSP linkReference resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param association_name: The name of the NSP association. Required. - :type association_name: str - :param parameters: Parameters that hold the NspAssociation resource to be created/updated. Is - either a model type or a IO type. Required. - :type parameters: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation or IO - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str + :param link_reference_name: The name of the NSP linkReference. Required. + :type link_reference_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: NspAssociation or the result of cls(response) - :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation + :return: NspLinkReference or the result of cls(response) + :rtype: ~azure.mgmt.network.v2021_02_01_preview.models.NspLinkReference :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -9376,31 +10960,19 @@ def create_or_update( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAssociation] - - content_type = content_type or "application/json" - _json = None - _content = None - if isinstance(parameters, (IO, bytes)): - _content = parameters - else: - _json = self._serialize.body(parameters, "NspAssociation") + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLinkReference] - request = build_nsp_associations_create_or_update_request( + request = build_nsp_link_references_get_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - association_name=association_name, + link_reference_name=link_reference_name, subscription_id=self._config.subscription_id, api_version=api_version, - content_type=content_type, - json=_json, - content=_content, - template_url=self.create_or_update.metadata["url"], + template_url=self.get.metadata["url"], headers=_headers, params=_params, ) @@ -9413,25 +10985,21 @@ def create_or_update( response = pipeline_response.http_response - 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) - - if response.status_code == 200: - deserialized = self._deserialize("NspAssociation", pipeline_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) - if response.status_code == 201: - deserialized = self._deserialize("NspAssociation", pipeline_response) + deserialized = self._deserialize("NspLinkReference", pipeline_response) if cls: return cls(pipeline_response, deserialized, {}) return deserialized - create_or_update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore + get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}"} # type: ignore def _delete_initial( # pylint: disable=inconsistent-return-statements - self, resource_group_name: str, network_security_perimeter_name: str, association_name: str, **kwargs: Any + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any ) -> None: error_map = { 401: ClientAuthenticationError, @@ -9447,10 +11015,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_nsp_associations_delete_request( + request = build_nsp_link_references_delete_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - association_name=association_name, + link_reference_name=link_reference_name, subscription_id=self._config.subscription_id, api_version=api_version, template_url=self._delete_initial.metadata["url"], @@ -9477,20 +11045,20 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements if cls: return cls(pipeline_response, None, response_headers) - _delete_initial.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore + _delete_initial.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}"} # type: ignore @distributed_trace def begin_delete( - self, resource_group_name: str, network_security_perimeter_name: str, association_name: str, **kwargs: Any + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any ) -> LROPoller[None]: - """Deletes an NSP association resource. + """Deletes an NSP LinkReference resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param association_name: The name of the NSP association. Required. - :type association_name: str + :param link_reference_name: The name of the NSP linkReference. Required. + :type link_reference_name: str :keyword callable cls: A custom type or function that will be passed the direct response :keyword str continuation_token: A continuation token to restart a poller from a saved state. :keyword polling: By default, your polling method will be ARMPolling. Pass in False for this @@ -9515,7 +11083,7 @@ def begin_delete( raw_result = self._delete_initial( # type: ignore resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - association_name=association_name, + link_reference_name=link_reference_name, api_version=api_version, cls=lambda x, y, z: x, headers=_headers, @@ -9529,7 +11097,9 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- return cls(pipeline_response, None, {}) if polling is True: - polling_method = cast(PollingMethod, ARMPolling(lro_delay, **kwargs)) # type: PollingMethod + polling_method = cast( + PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "location"}, **kwargs) + ) # type: PollingMethod elif polling is False: polling_method = cast(PollingMethod, NoPolling()) else: @@ -9543,7 +11113,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}"} # type: ignore + begin_delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}"} # type: ignore @distributed_trace def list( @@ -9553,8 +11123,8 @@ def list( top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any - ) -> Iterable["_models.NspAssociation"]: - """Lists the NSP resource associations. + ) -> Iterable["_models.NspLinkReference"]: + """Lists the NSP LinkReference resources in the specified network security perimeter. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str @@ -9569,16 +11139,16 @@ def list( value is None. :type skip_token: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either NspAssociation or the result of cls(response) + :return: An iterator like instance of either NspLinkReference or the result of cls(response) :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspAssociation] + ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.NspLinkReference] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.NspAssociationsListResult] + cls = kwargs.pop("cls", None) # type: ClsType[_models.NspLinkReferenceListResult] error_map = { 401: ClientAuthenticationError, @@ -9591,7 +11161,7 @@ def list( def prepare_request(next_link=None): if not next_link: - request = build_nsp_associations_list_request( + request = build_nsp_link_references_list_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, subscription_id=self._config.subscription_id, @@ -9607,210 +11177,24 @@ def prepare_request(next_link=None): else: # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) - _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - request.method = "GET" - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize("NspAssociationsListResult", pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **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) - - list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations"} # type: ignore - - -class NspAssociationReconcileOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`nsp_association_reconcile` attribute. - """ - - models = _models - - 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") - - @distributed_trace - def post( - self, - resource_group_name: str, - network_security_perimeter_name: str, - association_name: str, - parameters: JSON, - **kwargs: Any - ) -> JSON: - """Reconcile NSP association. - - :param resource_group_name: The name of the resource group. Required. - :type resource_group_name: str - :param network_security_perimeter_name: The name of the network security perimeter. Required. - :type network_security_perimeter_name: str - :param association_name: The name of the NSP association. Required. - :type association_name: str - :param parameters: Parameters for NSP association reconcile. Required. - :type parameters: JSON - :keyword callable cls: A custom type or function that will be passed the direct response - :return: JSON or the result of cls(response) - :rtype: JSON - :raises ~azure.core.exceptions.HttpResponseError: - """ - error_map = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", "application/json")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[JSON] - - _json = self._serialize.body(parameters, "object") - - request = build_nsp_association_reconcile_post_request( - resource_group_name=resource_group_name, - network_security_perimeter_name=network_security_perimeter_name, - association_name=association_name, - subscription_id=self._config.subscription_id, - api_version=api_version, - content_type=content_type, - json=_json, - template_url=self.post.metadata["url"], - headers=_headers, - params=_params, - ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access - request, stream=False, **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("object", pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - - post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/resourceAssociations/{associationName}/reconcile"} # type: ignore - - -class PerimeterAssociableResourceTypesOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`perimeter_associable_resource_types` attribute. - """ - - models = _models - - 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") - - @distributed_trace - def list(self, location: str, **kwargs: Any) -> Iterable["_models.PerimeterAssociableResource"]: - """Gets the list of resources that are onboarded with NSP. These resources can be associated with - a network security perimeter. - - :param location: The location of network security perimeter. Required. - :type location: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either PerimeterAssociableResource or the result of - cls(response) - :rtype: - ~azure.core.paging.ItemPaged[~azure.mgmt.network.v2021_02_01_preview.models.PerimeterAssociableResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - - api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[_models.PerimeterAssociableResourcesListResult] - - error_map = { - 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_perimeter_associable_resource_types_list_request( - location=location, - subscription_id=self._config.subscription_id, - api_version=api_version, - template_url=self.list.metadata["url"], - headers=_headers, - params=_params, + _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() + } ) - request = _convert_request(request) - request.url = self._client.format_url(request.url) # type: ignore - - else: - # make call to next link with the client's api-version - _parsed_next_link = urlparse(next_link) - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) _next_request_params["api-version"] = self._config.api_version - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) + request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) request = _convert_request(request) request.url = self._client.format_url(request.url) # type: ignore request.method = "GET" return request def extract_data(pipeline_response): - deserialized = self._deserialize("PerimeterAssociableResourcesListResult", pipeline_response) + deserialized = self._deserialize("NspLinkReferenceListResult", pipeline_response) list_of_elem = deserialized.value if cls: list_of_elem = cls(list_of_elem) @@ -9832,17 +11216,17 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{location}/perimeterAssociableResourceTypes"} # type: ignore + list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences"} # type: ignore -class NspAccessRulesReconcileOperations: +class NspLinkReferenceReconcileOperations: """ .. warning:: **DO NOT** instantiate this class directly. Instead, you should access the following operations through :class:`~azure.mgmt.network.v2021_02_01_preview.NetworkManagementClient`'s - :attr:`nsp_access_rules_reconcile` attribute. + :attr:`nsp_link_reference_reconcile` attribute. """ models = _models @@ -9855,30 +11239,20 @@ def __init__(self, *args, **kwargs): self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def post( - self, - resource_group_name: str, - network_security_perimeter_name: str, - profile_name: str, - access_rule_name: str, - parameters: JSON, - **kwargs: Any - ) -> JSON: - """Reconcile NSP access rules. + def post( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, network_security_perimeter_name: str, link_reference_name: str, **kwargs: Any + ) -> None: + """Reconcile NSP linkReference resource. :param resource_group_name: The name of the resource group. Required. :type resource_group_name: str :param network_security_perimeter_name: The name of the network security perimeter. Required. :type network_security_perimeter_name: str - :param profile_name: The name of the NSP profile. Required. - :type profile_name: str - :param access_rule_name: The name of the NSP access rule. Required. - :type access_rule_name: str - :param parameters: Parameters for NSP access rule reconcile. Required. - :type parameters: JSON + :param link_reference_name: The name of the NSP linkReference. Required. + :type link_reference_name: str :keyword callable cls: A custom type or function that will be passed the direct response - :return: JSON or the result of cls(response) - :rtype: JSON + :return: None or the result of cls(response) + :rtype: None :raises ~azure.core.exceptions.HttpResponseError: """ error_map = { @@ -9889,24 +11263,18 @@ def post( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _headers = kwargs.pop("headers", {}) or {} _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) api_version = kwargs.pop("api_version", _params.pop("api-version", "2021-02-01-preview")) # type: str - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", "application/json")) # type: str - cls = kwargs.pop("cls", None) # type: ClsType[JSON] - - _json = self._serialize.body(parameters, "object") + cls = kwargs.pop("cls", None) # type: ClsType[None] - request = build_nsp_access_rules_reconcile_post_request( + request = build_nsp_link_reference_reconcile_post_request( resource_group_name=resource_group_name, network_security_perimeter_name=network_security_perimeter_name, - profile_name=profile_name, - access_rule_name=access_rule_name, + link_reference_name=link_reference_name, subscription_id=self._config.subscription_id, api_version=api_version, - content_type=content_type, - json=_json, template_url=self.post.metadata["url"], headers=_headers, params=_params, @@ -9924,11 +11292,7 @@ def post( map_error(status_code=response.status_code, response=response, error_map=error_map) raise HttpResponseError(response=response, error_format=ARMErrorFormat) - deserialized = self._deserialize("object", pipeline_response) - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized + return cls(pipeline_response, None, {}) - post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/profiles/{profileName}/accessRules/{accessRuleName}/reconcile"} # type: ignore + post.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityPerimeters/{networkSecurityPerimeterName}/linkReferences/{linkReferenceName}/reconcile"} # type: ignore diff --git a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2022_05_01/_version.py b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2022_05_01/_version.py index 81b10eb08899..e5754a47ce68 100644 --- a/sdk/network/azure-mgmt-network/azure/mgmt/network/v2022_05_01/_version.py +++ b/sdk/network/azure-mgmt-network/azure/mgmt/network/v2022_05_01/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "22.0.0" +VERSION = "1.0.0b1"