From 8f8ec650f068fac608f6ed3eb847a4d855fa8380 Mon Sep 17 00:00:00 2001 From: Paul Van Eck Date: Mon, 11 Mar 2024 18:06:26 -0700 Subject: [PATCH] [Monitor Query] Update swagger (#34614) The swagger file are updated and the code is regenerated. Signed-off-by: Paul Van Eck --- sdk/monitor/azure-monitor-query/assets.json | 2 +- .../query/_generated/_serialization.py | 31 +++++------- .../_generated/aio/operations/_operations.py | 12 ----- .../query/_generated/metrics/_client.py | 3 ++ .../_generated/metrics/_configuration.py | 6 +++ .../_generated/metrics/_serialization.py | 31 +++++------- .../query/_generated/metrics/aio/_client.py | 3 ++ .../_generated/metrics/aio/_configuration.py | 6 +++ .../metrics/aio/operations/_operations.py | 42 +++++++++++----- .../query/_generated/metrics/batch/_client.py | 2 +- .../metrics/batch/_configuration.py | 4 +- .../metrics/batch/_serialization.py | 31 +++++------- .../_generated/metrics/batch/aio/_client.py | 2 +- .../metrics/batch/aio/_configuration.py | 4 +- .../batch/aio/operations/_operations.py | 3 -- .../metrics/batch/operations/_operations.py | 5 +- .../metrics/operations/_operations.py | 48 +++++++++++++------ .../_generated/operations/_operations.py | 12 ----- .../azure-monitor-query/swagger/README.md | 10 ++-- 19 files changed, 132 insertions(+), 125 deletions(-) diff --git a/sdk/monitor/azure-monitor-query/assets.json b/sdk/monitor/azure-monitor-query/assets.json index 91bc7a37f44c..0dc4dd023e8e 100644 --- a/sdk/monitor/azure-monitor-query/assets.json +++ b/sdk/monitor/azure-monitor-query/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "python", "TagPrefix": "python/monitor/azure-monitor-query", - "Tag": "python/monitor/azure-monitor-query_152690fb22" + "Tag": "python/monitor/azure-monitor-query_8640f7c705" } diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/_serialization.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/_serialization.py index baa661cb82d2..2f781d740827 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/_serialization.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/_serialization.py @@ -170,13 +170,6 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], return None -try: - basestring # type: ignore - unicode_str = unicode # type: ignore -except NameError: - basestring = str - unicode_str = str - _LOGGER = logging.getLogger(__name__) try: @@ -545,7 +538,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -561,7 +554,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "[]": self.serialize_iter, "{}": self.serialize_dict, } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_transformer = full_restapi_key_transformer self.client_side_validation = True @@ -649,7 +642,7 @@ def _serialize(self, target_obj, data_type=None, **kwargs): else: # That's a basic type # Integrate namespace if necessary local_node = _create_xml_node(xml_name, xml_prefix, xml_ns) - local_node.text = unicode_str(new_attr) + local_node.text = str(new_attr) serialized.append(local_node) # type: ignore else: # JSON for k in reversed(keys): # type: ignore @@ -994,7 +987,7 @@ def serialize_object(self, attr, **kwargs): return self.serialize_basic(attr, self.basic_types[obj_type], **kwargs) if obj_type is _long_type: return self.serialize_long(attr) - if obj_type is unicode_str: + if obj_type is str: return self.serialize_unicode(attr) if obj_type is datetime.datetime: return self.serialize_iso(attr) @@ -1370,7 +1363,7 @@ class Deserializer(object): valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?") - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1390,7 +1383,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "duration": (isodate.Duration, datetime.timedelta), "iso-8601": (datetime.datetime), } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_extractors = [rest_key_extractor, xml_key_extractor] # Additional properties only works if the "rest_key_extractor" is used to # extract the keys. Making it to work whatever the key extractor is too much @@ -1443,7 +1436,7 @@ def _deserialize(self, target_obj, data): response, class_name = self._classify_target(target_obj, data) - if isinstance(response, basestring): + if isinstance(response, str): return self.deserialize_data(data, response) elif isinstance(response, type) and issubclass(response, Enum): return self.deserialize_enum(data, response) @@ -1514,14 +1507,14 @@ def _classify_target(self, target, data): if target is None: return None, None - if isinstance(target, basestring): + if isinstance(target, str): try: target = self.dependencies[target] except KeyError: return target, target try: - target = target._classify(data, self.dependencies) + target = target._classify(data, self.dependencies) # type: ignore except AttributeError: pass # Target is not a Model, no classify return target, target.__class__.__name__ # type: ignore @@ -1577,7 +1570,7 @@ def _unpack_content(raw_data, content_type=None): if hasattr(raw_data, "_content_consumed"): return RawDeserializer.deserialize_from_http_generics(raw_data.text, raw_data.headers) - if isinstance(raw_data, (basestring, bytes)) or hasattr(raw_data, "read"): + if isinstance(raw_data, (str, bytes)) or hasattr(raw_data, "read"): return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore return raw_data @@ -1699,7 +1692,7 @@ def deserialize_object(self, attr, **kwargs): if isinstance(attr, ET.Element): # Do no recurse on XML, just return the tree as-is return attr - if isinstance(attr, basestring): + if isinstance(attr, str): return self.deserialize_basic(attr, "str") obj_type = type(attr) if obj_type in self.basic_types: @@ -1756,7 +1749,7 @@ def deserialize_basic(self, attr, data_type): if data_type == "bool": if attr in [True, False, 1, 0]: return bool(attr) - elif isinstance(attr, basestring): + elif isinstance(attr, str): if attr.lower() in ["true", "1"]: return True elif attr.lower() in ["false", "0"]: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/aio/operations/_operations.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/aio/operations/_operations.py index 46a3b69d6b6c..9bfabb9251ea 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/aio/operations/_operations.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/aio/operations/_operations.py @@ -384,9 +384,6 @@ async def execute( :keyword prefer: Optional. The prefer header to set server timeout, query statistics and visualization information. Default value is None. :paramtype prefer: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: @@ -829,9 +826,6 @@ async def resource_execute( :keyword prefer: Optional. The prefer header to set server timeout, query statistics and visualization information. Default value is None. :paramtype prefer: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: @@ -1182,9 +1176,6 @@ async def batch(self, body: Union[JSON, IO[bytes]], **kwargs: Any) -> JSON: :param body: The batch request body. Is either a JSON type or a IO[bytes] type. Required. :type body: JSON or IO[bytes] - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: @@ -1669,9 +1660,6 @@ async def resource_execute_xms( :keyword prefer: Optional. The prefer header to set server timeout, query statistics and visualization information. Default value is None. :paramtype prefer: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_client.py index 55fc0a6c71e6..888ad95aaf75 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_client.py @@ -29,6 +29,9 @@ class MonitorMetricsClient: # pylint: disable=client-accepts-api-version-keywor :vartype metric_namespaces: monitor_metrics_client.operations.MetricNamespacesOperations :keyword endpoint: Service URL. Default value is "https://management.azure.com". :paramtype endpoint: str + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this + default value may result in unsupported behavior. + :paramtype api_version: str """ def __init__( # pylint: disable=missing-client-constructor-parameter-credential diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_configuration.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_configuration.py index 9e2649da7073..4fb1b263e1ea 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_configuration.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_configuration.py @@ -18,10 +18,16 @@ class MonitorMetricsClientConfiguration: # pylint: disable=too-many-instance-at Note that all parameters used to create this instance are saved as instance attributes. + + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this + default value may result in unsupported behavior. + :paramtype api_version: str """ def __init__(self, **kwargs: Any) -> None: + api_version: str = kwargs.pop("api_version", "2024-02-01") + self.api_version = api_version kwargs.setdefault("sdk_moniker", "monitor-query/{}".format(VERSION)) self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_serialization.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_serialization.py index baa661cb82d2..2f781d740827 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_serialization.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/_serialization.py @@ -170,13 +170,6 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], return None -try: - basestring # type: ignore - unicode_str = unicode # type: ignore -except NameError: - basestring = str - unicode_str = str - _LOGGER = logging.getLogger(__name__) try: @@ -545,7 +538,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -561,7 +554,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "[]": self.serialize_iter, "{}": self.serialize_dict, } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_transformer = full_restapi_key_transformer self.client_side_validation = True @@ -649,7 +642,7 @@ def _serialize(self, target_obj, data_type=None, **kwargs): else: # That's a basic type # Integrate namespace if necessary local_node = _create_xml_node(xml_name, xml_prefix, xml_ns) - local_node.text = unicode_str(new_attr) + local_node.text = str(new_attr) serialized.append(local_node) # type: ignore else: # JSON for k in reversed(keys): # type: ignore @@ -994,7 +987,7 @@ def serialize_object(self, attr, **kwargs): return self.serialize_basic(attr, self.basic_types[obj_type], **kwargs) if obj_type is _long_type: return self.serialize_long(attr) - if obj_type is unicode_str: + if obj_type is str: return self.serialize_unicode(attr) if obj_type is datetime.datetime: return self.serialize_iso(attr) @@ -1370,7 +1363,7 @@ class Deserializer(object): valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?") - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1390,7 +1383,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "duration": (isodate.Duration, datetime.timedelta), "iso-8601": (datetime.datetime), } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_extractors = [rest_key_extractor, xml_key_extractor] # Additional properties only works if the "rest_key_extractor" is used to # extract the keys. Making it to work whatever the key extractor is too much @@ -1443,7 +1436,7 @@ def _deserialize(self, target_obj, data): response, class_name = self._classify_target(target_obj, data) - if isinstance(response, basestring): + if isinstance(response, str): return self.deserialize_data(data, response) elif isinstance(response, type) and issubclass(response, Enum): return self.deserialize_enum(data, response) @@ -1514,14 +1507,14 @@ def _classify_target(self, target, data): if target is None: return None, None - if isinstance(target, basestring): + if isinstance(target, str): try: target = self.dependencies[target] except KeyError: return target, target try: - target = target._classify(data, self.dependencies) + target = target._classify(data, self.dependencies) # type: ignore except AttributeError: pass # Target is not a Model, no classify return target, target.__class__.__name__ # type: ignore @@ -1577,7 +1570,7 @@ def _unpack_content(raw_data, content_type=None): if hasattr(raw_data, "_content_consumed"): return RawDeserializer.deserialize_from_http_generics(raw_data.text, raw_data.headers) - if isinstance(raw_data, (basestring, bytes)) or hasattr(raw_data, "read"): + if isinstance(raw_data, (str, bytes)) or hasattr(raw_data, "read"): return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore return raw_data @@ -1699,7 +1692,7 @@ def deserialize_object(self, attr, **kwargs): if isinstance(attr, ET.Element): # Do no recurse on XML, just return the tree as-is return attr - if isinstance(attr, basestring): + if isinstance(attr, str): return self.deserialize_basic(attr, "str") obj_type = type(attr) if obj_type in self.basic_types: @@ -1756,7 +1749,7 @@ def deserialize_basic(self, attr, data_type): if data_type == "bool": if attr in [True, False, 1, 0]: return bool(attr) - elif isinstance(attr, basestring): + elif isinstance(attr, str): if attr.lower() in ["true", "1"]: return True elif attr.lower() in ["false", "0"]: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_client.py index 482781e9a6ed..fefa6363e0ac 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_client.py @@ -29,6 +29,9 @@ class MonitorMetricsClient: # pylint: disable=client-accepts-api-version-keywor :vartype metric_namespaces: monitor_metrics_client.aio.operations.MetricNamespacesOperations :keyword endpoint: Service URL. Default value is "https://management.azure.com". :paramtype endpoint: str + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this + default value may result in unsupported behavior. + :paramtype api_version: str """ def __init__( # pylint: disable=missing-client-constructor-parameter-credential diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_configuration.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_configuration.py index 0c7eae382445..ef23b1ac5e5d 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_configuration.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/_configuration.py @@ -18,10 +18,16 @@ class MonitorMetricsClientConfiguration: # pylint: disable=too-many-instance-at Note that all parameters used to create this instance are saved as instance attributes. + + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this + default value may result in unsupported behavior. + :paramtype api_version: str """ def __init__(self, **kwargs: Any) -> None: + api_version: str = kwargs.pop("api_version", "2024-02-01") + self.api_version = api_version kwargs.setdefault("sdk_moniker", "monitor-query/{}".format(VERSION)) self.polling_interval = kwargs.get("polling_interval", 30) self._configure(**kwargs) diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/operations/_operations.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/operations/_operations.py index 184799a008cd..b04625e97eec 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/operations/_operations.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/aio/operations/_operations.py @@ -9,6 +9,7 @@ import datetime import sys from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar, cast +import urllib.parse from azure.core.async_paging import AsyncItemPaged, AsyncList from azure.core.exceptions import ( @@ -121,9 +122,8 @@ def list(self, resource_uri: str, *, metricnamespace: Optional[str] = None, **kw } """ _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + _params = kwargs.pop("params", {}) or {} - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) cls: ClsType[JSON] = kwargs.pop("cls", None) error_map = { @@ -140,14 +140,25 @@ def prepare_request(next_link=None): _request = build_metric_definitions_list_request( resource_uri=resource_uri, metricnamespace=metricnamespace, - api_version=api_version, + api_version=self._config.api_version, headers=_headers, params=_params, ) _request.url = self._client.format_url(_request.url) else: - _request = HttpRequest("GET", next_link) + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) _request.url = self._client.format_url(_request.url) return _request @@ -365,9 +376,8 @@ async def list( error_map.update(kwargs.pop("error_map", {}) or {}) _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + _params = kwargs.pop("params", {}) or {} - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) cls: ClsType[JSON] = kwargs.pop("cls", None) _request = build_metrics_list_request( @@ -384,7 +394,7 @@ async def list( auto_adjust_timegrain=auto_adjust_timegrain, validate_dimensions=validate_dimensions, rollupby=rollupby, - api_version=api_version, + api_version=self._config.api_version, headers=_headers, params=_params, ) @@ -460,9 +470,8 @@ def list(self, resource_uri: str, *, start_time: Optional[str] = None, **kwargs: } """ _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + _params = kwargs.pop("params", {}) or {} - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2017-12-01-preview")) cls: ClsType[JSON] = kwargs.pop("cls", None) error_map = { @@ -479,14 +488,25 @@ def prepare_request(next_link=None): _request = build_metric_namespaces_list_request( resource_uri=resource_uri, start_time=start_time, - api_version=api_version, + api_version=self._config.api_version, headers=_headers, params=_params, ) _request.url = self._client.format_url(_request.url) else: - _request = HttpRequest("GET", next_link) + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) _request.url = self._client.format_url(_request.url) return _request diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_client.py index 413b9eaad160..3574817422ed 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_client.py @@ -27,7 +27,7 @@ class MonitorBatchMetricsClient: # pylint: disable=client-accepts-api-version-k https://eastus.metrics.monitor.azure.com. The region should match the region of the requested resources. For global resources, the region should be 'global'. Required. :type endpoint: str - :keyword api_version: Api Version. Default value is "2023-10-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_configuration.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_configuration.py index 12b7d76ce904..16ba9df5b287 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_configuration.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_configuration.py @@ -23,13 +23,13 @@ class MonitorBatchMetricsClientConfiguration: # pylint: disable=too-many-instan https://eastus.metrics.monitor.azure.com. The region should match the region of the requested resources. For global resources, the region should be 'global'. Required. :type endpoint: str - :keyword api_version: Api Version. Default value is "2023-10-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ def __init__(self, endpoint: str, **kwargs: Any) -> None: - api_version: str = kwargs.pop("api_version", "2023-10-01") + api_version: str = kwargs.pop("api_version", "2024-02-01") if endpoint is None: raise ValueError("Parameter 'endpoint' must not be None.") diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_serialization.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_serialization.py index baa661cb82d2..2f781d740827 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_serialization.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/_serialization.py @@ -170,13 +170,6 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], return None -try: - basestring # type: ignore - unicode_str = unicode # type: ignore -except NameError: - basestring = str - unicode_str = str - _LOGGER = logging.getLogger(__name__) try: @@ -545,7 +538,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -561,7 +554,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "[]": self.serialize_iter, "{}": self.serialize_dict, } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_transformer = full_restapi_key_transformer self.client_side_validation = True @@ -649,7 +642,7 @@ def _serialize(self, target_obj, data_type=None, **kwargs): else: # That's a basic type # Integrate namespace if necessary local_node = _create_xml_node(xml_name, xml_prefix, xml_ns) - local_node.text = unicode_str(new_attr) + local_node.text = str(new_attr) serialized.append(local_node) # type: ignore else: # JSON for k in reversed(keys): # type: ignore @@ -994,7 +987,7 @@ def serialize_object(self, attr, **kwargs): return self.serialize_basic(attr, self.basic_types[obj_type], **kwargs) if obj_type is _long_type: return self.serialize_long(attr) - if obj_type is unicode_str: + if obj_type is str: return self.serialize_unicode(attr) if obj_type is datetime.datetime: return self.serialize_iso(attr) @@ -1370,7 +1363,7 @@ class Deserializer(object): valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?") - def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): + def __init__(self, classes: Optional[Mapping[str, type]] = None): self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1390,7 +1383,7 @@ def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): "duration": (isodate.Duration, datetime.timedelta), "iso-8601": (datetime.datetime), } - self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} + self.dependencies: Dict[str, type] = dict(classes) if classes else {} self.key_extractors = [rest_key_extractor, xml_key_extractor] # Additional properties only works if the "rest_key_extractor" is used to # extract the keys. Making it to work whatever the key extractor is too much @@ -1443,7 +1436,7 @@ def _deserialize(self, target_obj, data): response, class_name = self._classify_target(target_obj, data) - if isinstance(response, basestring): + if isinstance(response, str): return self.deserialize_data(data, response) elif isinstance(response, type) and issubclass(response, Enum): return self.deserialize_enum(data, response) @@ -1514,14 +1507,14 @@ def _classify_target(self, target, data): if target is None: return None, None - if isinstance(target, basestring): + if isinstance(target, str): try: target = self.dependencies[target] except KeyError: return target, target try: - target = target._classify(data, self.dependencies) + target = target._classify(data, self.dependencies) # type: ignore except AttributeError: pass # Target is not a Model, no classify return target, target.__class__.__name__ # type: ignore @@ -1577,7 +1570,7 @@ def _unpack_content(raw_data, content_type=None): if hasattr(raw_data, "_content_consumed"): return RawDeserializer.deserialize_from_http_generics(raw_data.text, raw_data.headers) - if isinstance(raw_data, (basestring, bytes)) or hasattr(raw_data, "read"): + if isinstance(raw_data, (str, bytes)) or hasattr(raw_data, "read"): return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore return raw_data @@ -1699,7 +1692,7 @@ def deserialize_object(self, attr, **kwargs): if isinstance(attr, ET.Element): # Do no recurse on XML, just return the tree as-is return attr - if isinstance(attr, basestring): + if isinstance(attr, str): return self.deserialize_basic(attr, "str") obj_type = type(attr) if obj_type in self.basic_types: @@ -1756,7 +1749,7 @@ def deserialize_basic(self, attr, data_type): if data_type == "bool": if attr in [True, False, 1, 0]: return bool(attr) - elif isinstance(attr, basestring): + elif isinstance(attr, str): if attr.lower() in ["true", "1"]: return True elif attr.lower() in ["false", "0"]: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_client.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_client.py index 872d94ad0099..eb91181245ef 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_client.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_client.py @@ -27,7 +27,7 @@ class MonitorBatchMetricsClient: # pylint: disable=client-accepts-api-version-k https://eastus.metrics.monitor.azure.com. The region should match the region of the requested resources. For global resources, the region should be 'global'. Required. :type endpoint: str - :keyword api_version: Api Version. Default value is "2023-10-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_configuration.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_configuration.py index 1fe0508b3c5e..579e30041e20 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_configuration.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/_configuration.py @@ -23,13 +23,13 @@ class MonitorBatchMetricsClientConfiguration: # pylint: disable=too-many-instan https://eastus.metrics.monitor.azure.com. The region should match the region of the requested resources. For global resources, the region should be 'global'. Required. :type endpoint: str - :keyword api_version: Api Version. Default value is "2023-10-01". Note that overriding this + :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ def __init__(self, endpoint: str, **kwargs: Any) -> None: - api_version: str = kwargs.pop("api_version", "2023-10-01") + api_version: str = kwargs.pop("api_version", "2024-02-01") if endpoint is None: raise ValueError("Parameter 'endpoint' must not be None.") diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/operations/_operations.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/operations/_operations.py index 91827da37205..93d9e0df9386 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/operations/_operations.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/aio/operations/_operations.py @@ -465,9 +465,6 @@ async def batch( separate values for each city, you can specify 'RollUpBy=City' to see the results for Seattle and Tacoma rolled up into one timeseries. Default value is None. :paramtype rollupby: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/operations/_operations.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/operations/_operations.py index fb1f0dcdec44..9b29ea972939 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/operations/_operations.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/batch/operations/_operations.py @@ -57,7 +57,7 @@ def build_metrics_batch_batch_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -527,9 +527,6 @@ def batch( separate values for each city, you can specify 'RollUpBy=City' to see the results for Seattle and Tacoma rolled up into one timeseries. Default value is None. :paramtype rollupby: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/operations/_operations.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/operations/_operations.py index 609b991f0ac0..065052297ecc 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/operations/_operations.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/metrics/operations/_operations.py @@ -9,6 +9,7 @@ import datetime import sys from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, cast +import urllib.parse from azure.core.exceptions import ( ClientAuthenticationError, @@ -44,7 +45,7 @@ def build_metric_definitions_list_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -86,7 +87,7 @@ def build_metrics_list_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -136,7 +137,7 @@ def build_metric_namespaces_list_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2017-12-01-preview")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -239,9 +240,8 @@ def list(self, resource_uri: str, *, metricnamespace: Optional[str] = None, **kw } """ _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + _params = kwargs.pop("params", {}) or {} - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) cls: ClsType[JSON] = kwargs.pop("cls", None) error_map = { @@ -258,14 +258,25 @@ def prepare_request(next_link=None): _request = build_metric_definitions_list_request( resource_uri=resource_uri, metricnamespace=metricnamespace, - api_version=api_version, + api_version=self._config.api_version, headers=_headers, params=_params, ) _request.url = self._client.format_url(_request.url) else: - _request = HttpRequest("GET", next_link) + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) _request.url = self._client.format_url(_request.url) return _request @@ -483,9 +494,8 @@ def list( error_map.update(kwargs.pop("error_map", {}) or {}) _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + _params = kwargs.pop("params", {}) or {} - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-10-01")) cls: ClsType[JSON] = kwargs.pop("cls", None) _request = build_metrics_list_request( @@ -502,7 +512,7 @@ def list( auto_adjust_timegrain=auto_adjust_timegrain, validate_dimensions=validate_dimensions, rollupby=rollupby, - api_version=api_version, + api_version=self._config.api_version, headers=_headers, params=_params, ) @@ -578,9 +588,8 @@ def list(self, resource_uri: str, *, start_time: Optional[str] = None, **kwargs: } """ _headers = kwargs.pop("headers", {}) or {} - _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + _params = kwargs.pop("params", {}) or {} - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2017-12-01-preview")) cls: ClsType[JSON] = kwargs.pop("cls", None) error_map = { @@ -597,14 +606,25 @@ def prepare_request(next_link=None): _request = build_metric_namespaces_list_request( resource_uri=resource_uri, start_time=start_time, - api_version=api_version, + api_version=self._config.api_version, headers=_headers, params=_params, ) _request.url = self._client.format_url(_request.url) else: - _request = HttpRequest("GET", next_link) + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + ) _request.url = self._client.format_url(_request.url) return _request diff --git a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/operations/_operations.py b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/operations/_operations.py index 8251268ac118..996cd0f82cbd 100644 --- a/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/operations/_operations.py +++ b/sdk/monitor/azure-monitor-query/azure/monitor/query/_generated/operations/_operations.py @@ -589,9 +589,6 @@ def execute( :keyword prefer: Optional. The prefer header to set server timeout, query statistics and visualization information. Default value is None. :paramtype prefer: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: @@ -1034,9 +1031,6 @@ def resource_execute( :keyword prefer: Optional. The prefer header to set server timeout, query statistics and visualization information. Default value is None. :paramtype prefer: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: @@ -1387,9 +1381,6 @@ def batch(self, body: Union[JSON, IO[bytes]], **kwargs: Any) -> JSON: :param body: The batch request body. Is either a JSON type or a IO[bytes] type. Required. :type body: JSON or IO[bytes] - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: @@ -1874,9 +1865,6 @@ def resource_execute_xms( :keyword prefer: Optional. The prefer header to set server timeout, query statistics and visualization information. Default value is None. :paramtype prefer: str - :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. - Default value is None. - :paramtype content_type: str :return: JSON object :rtype: JSON :raises ~azure.core.exceptions.HttpResponseError: diff --git a/sdk/monitor/azure-monitor-query/swagger/README.md b/sdk/monitor/azure-monitor-query/swagger/README.md index 48798bb57067..4ee5183ca20f 100644 --- a/sdk/monitor/azure-monitor-query/swagger/README.md +++ b/sdk/monitor/azure-monitor-query/swagger/README.md @@ -35,7 +35,7 @@ These settings apply only when `--tag=release_query` is specified on the command ```yaml $(tag) == 'release_query' input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/0373f0edc4414fd402603fac51d0df93f1f70507/specification/operationalinsights/data-plane/Microsoft.OperationalInsights/stable/2022-10-27/OperationalInsights.json + - https://github.com/Azure/azure-rest-api-specs/blob/0b64ca7cbe3af8cd13228dfb783a16b8272b8be2/specification/operationalinsights/data-plane/Microsoft.OperationalInsights/stable/2022-10-27/OperationalInsights.json output-folder: ../azure/monitor/query/_generated title: MonitorQueryClient description: Azure Monitor Query Python Client @@ -47,9 +47,9 @@ These settings apply only when `--tag=release_metrics` is specified on the comma ```yaml $(tag) == 'release_metrics' input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/0373f0edc4414fd402603fac51d0df93f1f70507/specification/monitor/resource-manager/Microsoft.Insights/stable/2023-10-01/metricDefinitions_API.json - - https://github.com/Azure/azure-rest-api-specs/blob/0373f0edc4414fd402603fac51d0df93f1f70507/specification/monitor/resource-manager/Microsoft.Insights/stable/2023-10-01/metrics_API.json - - https://github.com/Azure/azure-rest-api-specs/blob/0373f0edc4414fd402603fac51d0df93f1f70507/specification/monitor/resource-manager/Microsoft.Insights/preview/2017-12-01-preview/metricNamespaces_API.json + - https://github.com/Azure/azure-rest-api-specs/blob/0b64ca7cbe3af8cd13228dfb783a16b8272b8be2/specification/monitor/resource-manager/Microsoft.Insights/stable/2024-02-01/metricDefinitions_API.json + - https://github.com/Azure/azure-rest-api-specs/blob/0b64ca7cbe3af8cd13228dfb783a16b8272b8be2/specification/monitor/resource-manager/Microsoft.Insights/stable/2024-02-01/metrics_API.json + - https://github.com/Azure/azure-rest-api-specs/blob/0b64ca7cbe3af8cd13228dfb783a16b8272b8be2/specification/monitor/resource-manager/Microsoft.Insights/stable/2024-02-01/metricNamespaces_API.json output-folder: ../azure/monitor/query/_generated/metrics title: MonitorMetricsClient description: Azure Monitor Metrics Python Client @@ -61,7 +61,7 @@ These settings apply only when `--tag=release_metrics` is specified on the comma ```yaml $(tag) == 'release_metrics_batch' input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/0373f0edc4414fd402603fac51d0df93f1f70507/specification/monitor/data-plane/Microsoft.Insights/stable/2023-10-01/metricBatch.json + - https://github.com/Azure/azure-rest-api-specs/blob/0b64ca7cbe3af8cd13228dfb783a16b8272b8be2/specification/monitor/data-plane/Microsoft.Insights/stable/2024-02-01/metricBatch.json output-folder: ../azure/monitor/query/_generated/metrics/batch title: MonitorBatchMetricsClient description: Azure Monitor Batch Metrics Python Client