From 2d687b4f2b80ad335353e367571459486e896b40 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Wed, 25 Feb 2026 19:18:59 +0000 Subject: [PATCH] Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml', API Version: 2025-08-01-preview, SDK Release Type: beta, and CommitSHA: 'd3e85dfd3b82ed7f275dc987656a65afda20a8f4' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5926809 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- .../CHANGELOG.md | 24 ++ .../_metadata.json | 9 +- .../mgmt/containerservicefleet/_client.py | 6 +- .../containerservicefleet/_configuration.py | 6 +- .../mgmt/containerservicefleet/_patch.py | 4 +- .../_utils/model_base.py | 143 +++++++++++- .../_utils/serialization.py | 17 +- .../mgmt/containerservicefleet/_version.py | 2 +- .../mgmt/containerservicefleet/aio/_client.py | 6 +- .../aio/_configuration.py | 6 +- .../mgmt/containerservicefleet/aio/_patch.py | 4 +- .../aio/operations/_operations.py | 137 +++++++++++- .../aio/operations/_patch.py | 4 +- .../containerservicefleet/models/_enums.py | 16 +- .../containerservicefleet/models/_models.py | 99 ++++---- .../containerservicefleet/models/_patch.py | 4 +- .../operations/_operations.py | 211 ++++++++++++++++-- .../operations/_patch.py | 4 +- .../fleet_managed_namespaces_update.py | 44 ++++ .../tsp-location.yaml | 4 +- 20 files changed, 616 insertions(+), 134 deletions(-) create mode 100644 sdk/containerservice/azure-mgmt-containerservicefleet/generated_samples/fleet_managed_namespaces_update.py diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/CHANGELOG.md b/sdk/containerservice/azure-mgmt-containerservicefleet/CHANGELOG.md index 1b6623ec48e9..51046b794c95 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/CHANGELOG.md +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/CHANGELOG.md @@ -1,5 +1,29 @@ # Release History +## 4.0.0b3 (2026-02-25) + +### Features Added + + - Enum `LabelSelectorOperator` added member `INEnum` + - Model `AutoUpgradeProfilesOperations` added parameter `top` in method `list_by_fleet` + - Model `AutoUpgradeProfilesOperations` added parameter `skip_token` in method `list_by_fleet` + - Model `FleetMembersOperations` added parameter `top` in method `list_by_fleet` + - Model `FleetMembersOperations` added parameter `skip_token` in method `list_by_fleet` + - Model `FleetMembersOperations` added parameter `filter` in method `list_by_fleet` + - Model `FleetUpdateStrategiesOperations` added parameter `top` in method `list_by_fleet` + - Model `FleetUpdateStrategiesOperations` added parameter `skip_token` in method `list_by_fleet` + - Model `FleetsOperations` added parameter `top` in method `list_by_subscription` + - Model `FleetsOperations` added parameter `skip_token` in method `list_by_subscription` + - Model `GatesOperations` added parameter `filter` in method `list_by_fleet` + - Model `GatesOperations` added parameter `top` in method `list_by_fleet` + - Model `GatesOperations` added parameter `skip_token` in method `list_by_fleet` + - Model `UpdateRunsOperations` added parameter `top` in method `list_by_fleet` + - Model `UpdateRunsOperations` added parameter `skip_token` in method `list_by_fleet` + +### Breaking Changes + + - Deleted or renamed enum value `LabelSelectorOperator.IN` + ## 4.0.0b2 (2025-12-03) ### Features Added diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/_metadata.json b/sdk/containerservice/azure-mgmt-containerservicefleet/_metadata.json index 475ea5c59981..a4d42a4785dd 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/_metadata.json +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/_metadata.json @@ -1,7 +1,10 @@ { "apiVersion": "2025-08-01-preview", - "commit": "d0cd556bd91d2dda700e983c0d253fa025b324c0", + "apiVersions": { + "Microsoft.ContainerService": "2025-08-01-preview" + }, + "commit": "d3e85dfd3b82ed7f275dc987656a65afda20a8f4", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "typespec_src": "specification/containerservice/Fleet.Management", - "emitterVersion": "0.54.0" + "typespec_src": "specification/containerservice/resource-manager/Microsoft.ContainerService/fleet", + "emitterVersion": "0.60.1" } \ No newline at end of file diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_client.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_client.py index 45438961353d..d365ae478786 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_client.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_client.py @@ -70,9 +70,9 @@ class ContainerServiceFleetMgmtClient: # pylint: disable=too-many-instance-attr :keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :paramtype cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Default value is - "2025-08-01-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-08-01-preview" and None. Default value is "2025-08-01-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_configuration.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_configuration.py index 25be0f2c5e49..82cb431f40c9 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_configuration.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_configuration.py @@ -33,9 +33,9 @@ class ContainerServiceFleetMgmtClientConfiguration: # pylint: disable=too-many- :param cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :type cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Default value is - "2025-08-01-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-08-01-preview" and None. Default value is "2025-08-01-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_patch.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_patch.py index 8bcb627aa475..87676c65a8f0 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_patch.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_patch.py @@ -7,9 +7,9 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ -from typing import List -__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level def patch_sdk(): diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/model_base.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/model_base.py index 12926fa98dcf..4f7316e3cba1 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/model_base.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/model_base.py @@ -37,6 +37,7 @@ TZ_UTC = timezone.utc _T = typing.TypeVar("_T") +_NONE_TYPE = type(None) def _timedelta_as_isostr(td: timedelta) -> str: @@ -171,6 +172,21 @@ def default(self, o): # pylint: disable=too-many-return-statements r"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT" ) +_ARRAY_ENCODE_MAPPING = { + "pipeDelimited": "|", + "spaceDelimited": " ", + "commaDelimited": ",", + "newlineDelimited": "\n", +} + + +def _deserialize_array_encoded(delimit: str, attr): + if isinstance(attr, str): + if attr == "": + return [] + return attr.split(delimit) + return attr + def _deserialize_datetime(attr: typing.Union[str, datetime]) -> datetime: """Deserialize ISO-8601 formatted string into Datetime object. @@ -202,7 +218,7 @@ def _deserialize_datetime(attr: typing.Union[str, datetime]) -> datetime: test_utc = date_obj.utctimetuple() if test_utc.tm_year > 9999 or test_utc.tm_year < 1: raise OverflowError("Hit max or min date") - return date_obj + return date_obj # type: ignore[no-any-return] def _deserialize_datetime_rfc7231(attr: typing.Union[str, datetime]) -> datetime: @@ -256,7 +272,7 @@ def _deserialize_time(attr: typing.Union[str, time]) -> time: """ if isinstance(attr, time): return attr - return isodate.parse_time(attr) + return isodate.parse_time(attr) # type: ignore[no-any-return] def _deserialize_bytes(attr): @@ -315,6 +331,8 @@ def _deserialize_int_as_str(attr): def get_deserializer(annotation: typing.Any, rf: typing.Optional["_RestField"] = None): if annotation is int and rf and rf._format == "str": return _deserialize_int_as_str + if annotation is str and rf and rf._format in _ARRAY_ENCODE_MAPPING: + return functools.partial(_deserialize_array_encoded, _ARRAY_ENCODE_MAPPING[rf._format]) if rf and rf._format: return _DESERIALIZE_MAPPING_WITHFORMAT.get(rf._format) return _DESERIALIZE_MAPPING.get(annotation) # pyright: ignore @@ -353,9 +371,39 @@ def __contains__(self, key: typing.Any) -> bool: return key in self._data def __getitem__(self, key: str) -> typing.Any: + # If this key has been deserialized (for mutable types), we need to handle serialization + if hasattr(self, "_attr_to_rest_field"): + cache_attr = f"_deserialized_{key}" + if hasattr(self, cache_attr): + rf = _get_rest_field(getattr(self, "_attr_to_rest_field"), key) + if rf: + value = self._data.get(key) + if isinstance(value, (dict, list, set)): + # For mutable types, serialize and return + # But also update _data with serialized form and clear flag + # so mutations via this returned value affect _data + serialized = _serialize(value, rf._format) + # If serialized form is same type (no transformation needed), + # return _data directly so mutations work + if isinstance(serialized, type(value)) and serialized == value: + return self._data.get(key) + # Otherwise return serialized copy and clear flag + try: + object.__delattr__(self, cache_attr) + except AttributeError: + pass + # Store serialized form back + self._data[key] = serialized + return serialized return self._data.__getitem__(key) def __setitem__(self, key: str, value: typing.Any) -> None: + # Clear any cached deserialized value when setting through dictionary access + cache_attr = f"_deserialized_{key}" + try: + object.__delattr__(self, cache_attr) + except AttributeError: + pass self._data.__setitem__(key, value) def __delitem__(self, key: str) -> None: @@ -483,6 +531,8 @@ def _is_model(obj: typing.Any) -> bool: def _serialize(o, format: typing.Optional[str] = None): # pylint: disable=too-many-return-statements if isinstance(o, list): + if format in _ARRAY_ENCODE_MAPPING and all(isinstance(x, str) for x in o): + return _ARRAY_ENCODE_MAPPING[format].join(o) return [_serialize(x, format) for x in o] if isinstance(o, dict): return {k: _serialize(v, format) for k, v in o.items()} @@ -638,6 +688,10 @@ def __new__(cls, *args: typing.Any, **kwargs: typing.Any) -> Self: if not rf._rest_name_input: rf._rest_name_input = attr cls._attr_to_rest_field: dict[str, _RestField] = dict(attr_to_rest_field.items()) + cls._backcompat_attr_to_rest_field: dict[str, _RestField] = { + Model._get_backcompat_attribute_name(cls._attr_to_rest_field, attr): rf + for attr, rf in cls._attr_to_rest_field.items() + } cls._calculated.add(f"{cls.__module__}.{cls.__qualname__}") return super().__new__(cls) @@ -647,6 +701,16 @@ def __init_subclass__(cls, discriminator: typing.Optional[str] = None) -> None: if hasattr(base, "__mapping__"): base.__mapping__[discriminator or cls.__name__] = cls # type: ignore + @classmethod + def _get_backcompat_attribute_name(cls, attr_to_rest_field: dict[str, "_RestField"], attr_name: str) -> str: + rest_field_obj = attr_to_rest_field.get(attr_name) # pylint: disable=protected-access + if rest_field_obj is None: + return attr_name + original_tsp_name = getattr(rest_field_obj, "_original_tsp_name", None) # pylint: disable=protected-access + if original_tsp_name: + return original_tsp_name + return attr_name + @classmethod def _get_discriminator(cls, exist_discriminators) -> typing.Optional["_RestField"]: for v in cls.__dict__.values(): @@ -758,6 +822,14 @@ def _deserialize_multiple_sequence( return type(obj)(_deserialize(deserializer, entry, module) for entry, deserializer in zip(obj, entry_deserializers)) +def _is_array_encoded_deserializer(deserializer: functools.partial) -> bool: + return ( + isinstance(deserializer, functools.partial) + and isinstance(deserializer.args[0], functools.partial) + and deserializer.args[0].func == _deserialize_array_encoded # pylint: disable=comparison-with-callable + ) + + def _deserialize_sequence( deserializer: typing.Optional[typing.Callable], module: typing.Optional[str], @@ -767,6 +839,19 @@ def _deserialize_sequence( return obj if isinstance(obj, ET.Element): obj = list(obj) + + # encoded string may be deserialized to sequence + if isinstance(obj, str) and isinstance(deserializer, functools.partial): + # for list[str] + if _is_array_encoded_deserializer(deserializer): + return deserializer(obj) + + # for list[Union[...]] + if isinstance(deserializer.args[0], list): + for sub_deserializer in deserializer.args[0]: + if _is_array_encoded_deserializer(sub_deserializer): + return sub_deserializer(obj) + return type(obj)(_deserialize(deserializer, entry, module) for entry in obj) @@ -817,16 +902,16 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=too-many-retur # is it optional? try: - if any(a for a in annotation.__args__ if a == type(None)): # pyright: ignore + if any(a is _NONE_TYPE for a in annotation.__args__): # pyright: ignore if len(annotation.__args__) <= 2: # pyright: ignore if_obj_deserializer = _get_deserialize_callable_from_annotation( - next(a for a in annotation.__args__ if a != type(None)), module, rf # pyright: ignore + next(a for a in annotation.__args__ if a is not _NONE_TYPE), module, rf # pyright: ignore ) return functools.partial(_deserialize_with_optional, if_obj_deserializer) # the type is Optional[Union[...]], we need to remove the None type from the Union annotation_copy = copy.copy(annotation) - annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a != type(None)] # pyright: ignore + annotation_copy.__args__ = [a for a in annotation_copy.__args__ if a is not _NONE_TYPE] # pyright: ignore return _get_deserialize_callable_from_annotation(annotation_copy, module, rf) except AttributeError: pass @@ -952,7 +1037,7 @@ def _failsafe_deserialize( ) -> typing.Any: try: return _deserialize(deserializer, response.json(), module, rf, format) - except DeserializationError: + except Exception: # pylint: disable=broad-except _LOGGER.warning( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) @@ -965,13 +1050,14 @@ def _failsafe_deserialize_xml( ) -> typing.Any: try: return _deserialize_xml(deserializer, response.text()) - except DeserializationError: + except Exception: # pylint: disable=broad-except _LOGGER.warning( "Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True ) return None +# pylint: disable=too-many-instance-attributes class _RestField: def __init__( self, @@ -984,6 +1070,7 @@ def __init__( format: typing.Optional[str] = None, is_multipart_file_input: bool = False, xml: typing.Optional[dict[str, typing.Any]] = None, + original_tsp_name: typing.Optional[str] = None, ): self._type = type self._rest_name_input = name @@ -995,10 +1082,15 @@ def __init__( self._format = format self._is_multipart_file_input = is_multipart_file_input self._xml = xml if xml is not None else {} + self._original_tsp_name = original_tsp_name @property def _class_type(self) -> typing.Any: - return getattr(self._type, "args", [None])[0] + result = getattr(self._type, "args", [None])[0] + # type may be wrapped by nested functools.partial so we need to check for that + if isinstance(result, functools.partial): + return getattr(result, "args", [None])[0] + return result @property def _rest_name(self) -> str: @@ -1009,14 +1101,37 @@ def _rest_name(self) -> str: def __get__(self, obj: Model, type=None): # pylint: disable=redefined-builtin # by this point, type and rest_name will have a value bc we default # them in __new__ of the Model class - item = obj.get(self._rest_name) + # Use _data.get() directly to avoid triggering __getitem__ which clears the cache + item = obj._data.get(self._rest_name) if item is None: return item if self._is_model: return item - return _deserialize(self._type, _serialize(item, self._format), rf=self) + + # For mutable types, we want mutations to directly affect _data + # Check if we've already deserialized this value + cache_attr = f"_deserialized_{self._rest_name}" + if hasattr(obj, cache_attr): + # Return the value from _data directly (it's been deserialized in place) + return obj._data.get(self._rest_name) + + deserialized = _deserialize(self._type, _serialize(item, self._format), rf=self) + + # For mutable types, store the deserialized value back in _data + # so mutations directly affect _data + if isinstance(deserialized, (dict, list, set)): + obj._data[self._rest_name] = deserialized + object.__setattr__(obj, cache_attr, True) # Mark as deserialized + return deserialized + + return deserialized def __set__(self, obj: Model, value) -> None: + # Clear the cached deserialized object when setting a new value + cache_attr = f"_deserialized_{self._rest_name}" + if hasattr(obj, cache_attr): + object.__delattr__(obj, cache_attr) + if value is None: # we want to wipe out entries if users set attr to None try: @@ -1046,6 +1161,7 @@ def rest_field( format: typing.Optional[str] = None, is_multipart_file_input: bool = False, xml: typing.Optional[dict[str, typing.Any]] = None, + original_tsp_name: typing.Optional[str] = None, ) -> typing.Any: return _RestField( name=name, @@ -1055,6 +1171,7 @@ def rest_field( format=format, is_multipart_file_input=is_multipart_file_input, xml=xml, + original_tsp_name=original_tsp_name, ) @@ -1184,7 +1301,7 @@ def _get_wrapped_element( _get_element(v, exclude_readonly, meta, wrapped_element) else: wrapped_element.text = _get_primitive_type_value(v) - return wrapped_element + return wrapped_element # type: ignore[no-any-return] def _get_primitive_type_value(v) -> str: @@ -1197,7 +1314,9 @@ def _get_primitive_type_value(v) -> str: return str(v) -def _create_xml_element(tag, prefix=None, ns=None): +def _create_xml_element( + tag: typing.Any, prefix: typing.Optional[str] = None, ns: typing.Optional[str] = None +) -> ET.Element: if prefix and ns: ET.register_namespace(prefix, ns) if ns: diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/serialization.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/serialization.py index 45a3e44e45cb..81ec1de5922b 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/serialization.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_utils/serialization.py @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_version.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_version.py index 1d7f027bc591..fb4a79d2c4b3 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_version.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "4.0.0b2" +VERSION = "4.0.0b3" diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_client.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_client.py index f39861a2a201..e3a536d4829f 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_client.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_client.py @@ -70,9 +70,9 @@ class ContainerServiceFleetMgmtClient: # pylint: disable=too-many-instance-attr :keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :paramtype cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Default value is - "2025-08-01-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-08-01-preview" and None. Default value is "2025-08-01-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_configuration.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_configuration.py index 305ab3e9c90b..4bdab6265879 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_configuration.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_configuration.py @@ -33,9 +33,9 @@ class ContainerServiceFleetMgmtClientConfiguration: # pylint: disable=too-many- :param cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :type cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Default value is - "2025-08-01-preview". Note that overriding this default value may result in unsupported - behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2025-08-01-preview" and None. Default value is "2025-08-01-preview". Note that overriding this + default value may result in unsupported behavior. :paramtype api_version: str """ diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_patch.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_patch.py index 8bcb627aa475..87676c65a8f0 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_patch.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/_patch.py @@ -7,9 +7,9 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ -from typing import List -__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level def patch_sdk(): diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_operations.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_operations.py index bcc03afe0701..fa1b71652457 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_operations.py @@ -1119,9 +1119,16 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> AsyncItemPaged["_models.Fleet"]: + def list_by_subscription( + self, *, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any + ) -> AsyncItemPaged["_models.Fleet"]: """Lists fleets in the specified subscription. + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of Fleet :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservicefleet.models.Fleet] :raises ~azure.core.exceptions.HttpResponseError: @@ -1144,6 +1151,8 @@ def prepare_request(next_link=None): _request = build_fleets_list_by_subscription_request( subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -2166,7 +2175,14 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @distributed_trace def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + filter: Optional[str] = None, + **kwargs: Any ) -> AsyncItemPaged["_models.FleetMember"]: """List FleetMember resources by Fleet. @@ -2175,6 +2191,13 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str + :keyword filter: Filter the result list using the given expression. Default value is None. + :paramtype filter: str :return: An iterator like instance of FleetMember :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservicefleet.models.FleetMember] @@ -2200,6 +2223,9 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + filter=filter, api_version=self._config.api_version, headers=_headers, params=_params, @@ -3749,11 +3775,29 @@ def get_long_running_output(pipeline_response): @api_version_validation( method_added_on="2025-04-01-preview", params_added_on={ - "2025-04-01-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2025-04-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "filter", + "top", + "skip_token", + "accept", + ] }, api_versions_list=["2025-04-01-preview", "2025-08-01-preview"], ) - def list_by_fleet(self, resource_group_name: str, fleet_name: str, **kwargs: Any) -> AsyncItemPaged["_models.Gate"]: + def list_by_fleet( + self, + resource_group_name: str, + fleet_name: str, + *, + filter: Optional[str] = None, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> AsyncItemPaged["_models.Gate"]: """List Gate resources by Fleet. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -3761,6 +3805,13 @@ def list_by_fleet(self, resource_group_name: str, fleet_name: str, **kwargs: Any :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword filter: Filter the result list using the given expression. Default value is None. + :paramtype filter: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of Gate :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservicefleet.models.Gate] :raises ~azure.core.exceptions.HttpResponseError: @@ -3785,6 +3836,9 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + filter=filter, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -4518,7 +4572,15 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @api_version_validation( method_added_on="2023-03-15-preview", params_added_on={ - "2023-03-15-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2023-03-15-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "top", + "skip_token", + "accept", + ] }, api_versions_list=[ "2023-03-15-preview", @@ -4534,7 +4596,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ], ) def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any ) -> AsyncItemPaged["_models.UpdateRun"]: """List UpdateRun resources by Fleet. @@ -4543,6 +4611,11 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of UpdateRun :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservicefleet.models.UpdateRun] @@ -4568,6 +4641,8 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -6070,7 +6145,15 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @api_version_validation( method_added_on="2023-08-15-preview", params_added_on={ - "2023-08-15-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2023-08-15-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "top", + "skip_token", + "accept", + ] }, api_versions_list=[ "2023-08-15-preview", @@ -6084,7 +6167,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ], ) def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any ) -> AsyncItemPaged["_models.FleetUpdateStrategy"]: """List FleetUpdateStrategy resources by Fleet. @@ -6093,6 +6182,11 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of FleetUpdateStrategy :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservicefleet.models.FleetUpdateStrategy] @@ -6118,6 +6212,8 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -6804,12 +6900,26 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @api_version_validation( method_added_on="2024-05-02-preview", params_added_on={ - "2024-05-02-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2024-05-02-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "top", + "skip_token", + "accept", + ] }, api_versions_list=["2024-05-02-preview", "2025-03-01", "2025-04-01-preview", "2025-08-01-preview"], ) def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any ) -> AsyncItemPaged["_models.AutoUpgradeProfile"]: """List AutoUpgradeProfile resources by Fleet. @@ -6818,6 +6928,11 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of AutoUpgradeProfile :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.containerservicefleet.models.AutoUpgradeProfile] @@ -6843,6 +6958,8 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_patch.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_patch.py index 8bcb627aa475..87676c65a8f0 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_patch.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/aio/operations/_patch.py @@ -7,9 +7,9 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ -from typing import List -__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level def patch_sdk(): diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_enums.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_enums.py index c50bb27bbd9a..a642b9b18f1b 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_enums.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_enums.py @@ -187,14 +187,14 @@ class GateType(str, Enum, metaclass=CaseInsensitiveEnumMeta): class LabelSelectorOperator(str, Enum, metaclass=CaseInsensitiveEnumMeta): """A label selector operator is the set of operators that can be used in a selector requirement.""" - IN = "In" - """Label Selector Operator In""" + INEnum = "In" + """Label Selector Operator In.""" NOT_IN = "NotIn" - """Label Selector Operator NotIn""" + """Label Selector Operator NotIn.""" EXISTS = "Exists" - """Label Selector Operator Exists""" + """Label Selector Operator Exists.""" DOES_NOT_EXIST = "DoesNotExist" - """Label Selector Operator DoesNotExist""" + """Label Selector Operator DoesNotExist.""" class ManagedClusterUpgradeType(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -347,9 +347,9 @@ class TolerationOperator(str, Enum, metaclass=CaseInsensitiveEnumMeta): """A toleration operator is the set of operators that can be used in a toleration.""" EXISTS = "Exists" - """Toleration Operator Exists""" + """Toleration Operator Exists.""" EQUAL = "Equal" - """Toleration Operator Equal""" + """Toleration Operator Equal.""" class UpdateRunProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): @@ -403,4 +403,4 @@ class UpgradeChannel(str, Enum, metaclass=CaseInsensitiveEnumMeta): For information on the behavior of update run for Kubernetes version upgrade, see `https://learn.microsoft.com/en-us/azure/kubernetes-fleet/update-orchestration?tabs=azure-portal - `_""" + `_.""" diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_models.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_models.py index 829472df16a0..3c5953bfa189 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_models.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_models.py @@ -296,30 +296,23 @@ class AutoUpgradeProfileProperties(_Model): :vartype node_image_selection: ~azure.mgmt.containerservicefleet.models.AutoUpgradeNodeImageSelection :ivar disabled: If set to False: the auto upgrade has effect - target managed clusters will be - upgraded on schedule. - If set to True: the auto upgrade has no effect - no upgrade will be run on the target managed - clusters. - This is a boolean and not an enum because enabled/disabled are all available states of the auto - upgrade profile. - By default, this is set to False. + upgraded on schedule. If set to True: the auto upgrade has no effect - no upgrade will be run + on the target managed clusters. This is a boolean and not an enum because enabled/disabled are + all available states of the auto upgrade profile. By default, this is set to False. :vartype disabled: bool :ivar auto_upgrade_profile_status: The status of the auto upgrade profile. :vartype auto_upgrade_profile_status: ~azure.mgmt.containerservicefleet.models.AutoUpgradeProfileStatus :ivar target_kubernetes_version: This is the target Kubernetes version for auto-upgrade. The - format must be ``{major version}.{minor version}``. For example, "1.30". - By default, this is empty. - If upgrade channel is set to TargetKubernetesVersion, this field must not be empty. - If upgrade channel is Rapid, Stable or NodeImage, this field must be empty. + format must be ``{major version}.{minor version}``. For example, "1.30". By default, this is + empty. If upgrade channel is set to TargetKubernetesVersion, this field must not be empty. If + upgrade channel is Rapid, Stable or NodeImage, this field must be empty. :vartype target_kubernetes_version: str :ivar long_term_support: If upgrade channel is not TargetKubernetesVersion, this field must - be False. - If set to True: Fleet auto upgrade will continue generate update runs for patches of minor - versions earlier than N-2 - (where N is the latest supported minor version) if those minor versions support Long-Term - Support (LTS). - By default, this is set to False. - For more information on AKS LTS, please see + be False. If set to True: Fleet auto upgrade will continue generate update runs for patches of + minor versions earlier than N-2 (where N is the latest supported minor version) if those minor + versions support Long-Term Support (LTS). By default, this is set to False. For more + information on AKS LTS, please see `https://learn.microsoft.com/en-us/azure/aks/long-term-support `_. :vartype long_term_support: bool @@ -344,12 +337,9 @@ class AutoUpgradeProfileProperties(_Model): """The node image upgrade to be applied to the target clusters in auto upgrade.""" disabled: Optional[bool] = rest_field(visibility=["read", "create", "update", "delete", "query"]) """If set to False: the auto upgrade has effect - target managed clusters will be upgraded on - schedule. - If set to True: the auto upgrade has no effect - no upgrade will be run on the target managed - clusters. - This is a boolean and not an enum because enabled/disabled are all available states of the auto - upgrade profile. - By default, this is set to False.""" + schedule. If set to True: the auto upgrade has no effect - no upgrade will be run on the target + managed clusters. This is a boolean and not an enum because enabled/disabled are all available + states of the auto upgrade profile. By default, this is set to False.""" auto_upgrade_profile_status: Optional["_models.AutoUpgradeProfileStatus"] = rest_field( name="autoUpgradeProfileStatus", visibility=["read", "create", "update", "delete", "query"] ) @@ -357,22 +347,18 @@ class AutoUpgradeProfileProperties(_Model): target_kubernetes_version: Optional[str] = rest_field( name="targetKubernetesVersion", visibility=["read", "create", "update", "delete", "query"] ) - """ This is the target Kubernetes version for auto-upgrade. The format must be ``{major - version}.{minor version}``. For example, \"1.30\". - By default, this is empty. - If upgrade channel is set to TargetKubernetesVersion, this field must not be empty. - If upgrade channel is Rapid, Stable or NodeImage, this field must be empty.""" + """This is the target Kubernetes version for auto-upgrade. The format must be ``{major + version}.{minor version}``. For example, \"1.30\". By default, this is empty. If upgrade + channel is set to TargetKubernetesVersion, this field must not be empty. If upgrade channel is + Rapid, Stable or NodeImage, this field must be empty.""" long_term_support: Optional[bool] = rest_field( name="longTermSupport", visibility=["read", "create", "update", "delete", "query"] ) - """ If upgrade channel is not TargetKubernetesVersion, this field must be False. - If set to True: Fleet auto upgrade will continue generate update runs for patches of minor - versions earlier than N-2 - (where N is the latest supported minor version) if those minor versions support Long-Term - Support (LTS). - By default, this is set to False. - For more information on AKS LTS, please see - `https://learn.microsoft.com/en-us/azure/aks/long-term-support + """If upgrade channel is not TargetKubernetesVersion, this field must be False. If set to True: + Fleet auto upgrade will continue generate update runs for patches of minor versions earlier + than N-2 (where N is the latest supported minor version) if those minor versions support + Long-Term Support (LTS). By default, this is set to False. For more information on AKS LTS, + please see `https://learn.microsoft.com/en-us/azure/aks/long-term-support `_.""" @overload @@ -1830,7 +1816,7 @@ class LabelSelectorRequirement(_Model): Exists and DoesNotExist. Required. Known values are: \"In\", \"NotIn\", \"Exists\", and \"DoesNotExist\".""" values_property: Optional[list[str]] = rest_field( - name="values", visibility=["read", "create", "update", "delete", "query"] + name="values", visibility=["read", "create", "update", "delete", "query"], original_tsp_name="values" ) """values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This @@ -2232,7 +2218,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class OperationDisplay(_Model): - """Localized display information for and operation. + """Localized display information for an operation. :ivar provider: The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". @@ -2452,7 +2438,9 @@ class PropertySelectorRequirement(_Model): """Operator specifies the relationship between a cluster's observed value of the specified property and the values given in the requirement. Required. Known values are: \"Gt\", \"Ge\", \"Eq\", \"Ne\", \"Lt\", and \"Le\".""" - values_property: list[str] = rest_field(name="values", visibility=["read", "create", "update", "delete", "query"]) + values_property: list[str] = rest_field( + name="values", visibility=["read", "create", "update", "delete", "query"], original_tsp_name="values" + ) """Values are a list of values of the specified property which Fleet will compare against the observed values of individual member clusters in accordance with the given operator. At this moment, each value should be a Kubernetes quantity. For more information, see @@ -2580,9 +2568,8 @@ class SkipTarget(_Model): :ivar type: The skip target type. Required. Known values are: "Member", "Group", "Stage", and "AfterStageWait". :vartype type: str or ~azure.mgmt.containerservicefleet.models.TargetType - :ivar name: The skip target's name. - To skip a member/group/stage, use the member/group/stage's name; - Tp skip an after stage wait, use the parent stage's name. Required. + :ivar name: The skip target's name. To skip a member/group/stage, use the member/group/stage's + name; Tp skip an after stage wait, use the parent stage's name. Required. :vartype name: str """ @@ -2590,9 +2577,8 @@ class SkipTarget(_Model): """The skip target type. Required. Known values are: \"Member\", \"Group\", \"Stage\", and \"AfterStageWait\".""" name: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """The skip target's name. - To skip a member/group/stage, use the member/group/stage's name; - Tp skip an after stage wait, use the parent stage's name. Required.""" + """The skip target's name. To skip a member/group/stage, use the member/group/stage's name; Tp + skip an after stage wait, use the parent stage's name. Required.""" @overload def __init__( @@ -2744,8 +2730,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class UpdateGroup(_Model): """A group to be updated. - :ivar name: Name of the group. - It must match a group name of an existing fleet member. Required. + :ivar name: Name of the group. It must match a group name of an existing fleet member. + Required. :vartype name: str :ivar before_gates: A list of Gates that will be created before this Group is executed. :vartype before_gates: list[~azure.mgmt.containerservicefleet.models.GateConfiguration] @@ -2754,8 +2740,7 @@ class UpdateGroup(_Model): """ name: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Name of the group. - It must match a group name of an existing fleet member. Required.""" + """Name of the group. It must match a group name of an existing fleet member. Required.""" before_gates: Optional[list["_models.GateConfiguration"]] = rest_field( name="beforeGates", visibility=["read", "create", "update", "delete", "query"] ) @@ -2975,10 +2960,10 @@ class UpdateRunProperties(_Model): UpdateRunStrategy changes can be made directly on the "strategy" field before launching the UpdateRun. :vartype update_strategy_id: str - :ivar strategy: The strategy defines the order in which the clusters will be updated. - If not set, all members will be updated sequentially. The UpdateRun status will show a single - UpdateStage and a single UpdateGroup targeting all members. - The strategy of the UpdateRun can be modified until the run is started. + :ivar strategy: The strategy defines the order in which the clusters will be updated. If not + set, all members will be updated sequentially. The UpdateRun status will show a single + UpdateStage and a single UpdateGroup targeting all members. The strategy of the UpdateRun can + be modified until the run is started. :vartype strategy: ~azure.mgmt.containerservicefleet.models.UpdateRunStrategy :ivar managed_cluster_update: The update to be applied to all clusters in the UpdateRun. The managedClusterUpdate can be modified until the run is started. Required. @@ -3017,10 +3002,10 @@ class UpdateRunProperties(_Model): strategy: Optional["_models.UpdateRunStrategy"] = rest_field( visibility=["read", "create", "update", "delete", "query"] ) - """The strategy defines the order in which the clusters will be updated. - If not set, all members will be updated sequentially. The UpdateRun status will show a single - UpdateStage and a single UpdateGroup targeting all members. - The strategy of the UpdateRun can be modified until the run is started.""" + """The strategy defines the order in which the clusters will be updated. If not set, all members + will be updated sequentially. The UpdateRun status will show a single UpdateStage and a single + UpdateGroup targeting all members. The strategy of the UpdateRun can be modified until the run + is started.""" managed_cluster_update: "_models.ManagedClusterUpdate" = rest_field( name="managedClusterUpdate", visibility=["read", "create", "update", "delete", "query"] ) diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_patch.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_patch.py index 8bcb627aa475..87676c65a8f0 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_patch.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/models/_patch.py @@ -7,9 +7,9 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ -from typing import List -__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level def patch_sdk(): diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_operations.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_operations.py index 4d7c662d9011..864b23c3f2b5 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_operations.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_operations.py @@ -249,7 +249,7 @@ def build_fleets_list_by_resource_group_request( # pylint: disable=name-too-lon def build_fleets_list_by_subscription_request( # pylint: disable=name-too-long - subscription_id: str, **kwargs: Any + 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 {}) @@ -267,6 +267,10 @@ def build_fleets_list_by_subscription_request( # pylint: disable=name-too-long # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -461,7 +465,14 @@ def build_fleet_members_delete_request( def build_fleet_members_list_by_fleet_request( # pylint: disable=name-too-long - resource_group_name: str, fleet_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, + fleet_name: str, + subscription_id: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + filter: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -481,6 +492,12 @@ def build_fleet_members_list_by_fleet_request( # pylint: disable=name-too-long # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") + if filter is not None: + _params["$filter"] = _SERIALIZER.query("filter", filter, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -749,7 +766,14 @@ def build_gates_update_request( def build_gates_list_by_fleet_request( - resource_group_name: str, fleet_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, + fleet_name: str, + subscription_id: str, + *, + filter: Optional[str] = None, + 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 {}) @@ -769,6 +793,12 @@ def build_gates_list_by_fleet_request( # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if filter is not None: + _params["$filter"] = _SERIALIZER.query("filter", filter, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -890,7 +920,13 @@ def build_update_runs_delete_request( def build_update_runs_list_by_fleet_request( - resource_group_name: str, fleet_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, + fleet_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 {}) @@ -910,6 +946,10 @@ def build_update_runs_list_by_fleet_request( # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -1160,7 +1200,13 @@ def build_fleet_update_strategies_delete_request( # pylint: disable=name-too-lo def build_fleet_update_strategies_list_by_fleet_request( # pylint: disable=name-too-long - resource_group_name: str, fleet_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, + fleet_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 {}) @@ -1180,6 +1226,10 @@ def build_fleet_update_strategies_list_by_fleet_request( # pylint: disable=name # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -1301,7 +1351,13 @@ def build_auto_upgrade_profiles_delete_request( # pylint: disable=name-too-long def build_auto_upgrade_profiles_list_by_fleet_request( # pylint: disable=name-too-long - resource_group_name: str, fleet_name: str, subscription_id: str, **kwargs: Any + resource_group_name: str, + fleet_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 {}) @@ -1321,6 +1377,10 @@ def build_auto_upgrade_profiles_list_by_fleet_request( # pylint: disable=name-t # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + if top is not None: + _params["$top"] = _SERIALIZER.query("top", top, "int") + if skip_token is not None: + _params["$skipToken"] = _SERIALIZER.query("skip_token", skip_token, "str") # Construct headers _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") @@ -2390,9 +2450,16 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) @distributed_trace - def list_by_subscription(self, **kwargs: Any) -> ItemPaged["_models.Fleet"]: + def list_by_subscription( + self, *, top: Optional[int] = None, skip_token: Optional[str] = None, **kwargs: Any + ) -> ItemPaged["_models.Fleet"]: """Lists fleets in the specified subscription. + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of Fleet :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservicefleet.models.Fleet] :raises ~azure.core.exceptions.HttpResponseError: @@ -2415,6 +2482,8 @@ def prepare_request(next_link=None): _request = build_fleets_list_by_subscription_request( subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -3429,7 +3498,14 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @distributed_trace def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + filter: Optional[str] = None, + **kwargs: Any ) -> ItemPaged["_models.FleetMember"]: """List FleetMember resources by Fleet. @@ -3438,6 +3514,13 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str + :keyword filter: Filter the result list using the given expression. Default value is None. + :paramtype filter: str :return: An iterator like instance of FleetMember :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservicefleet.models.FleetMember] :raises ~azure.core.exceptions.HttpResponseError: @@ -3462,6 +3545,9 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, + filter=filter, api_version=self._config.api_version, headers=_headers, params=_params, @@ -5007,11 +5093,29 @@ def get_long_running_output(pipeline_response): @api_version_validation( method_added_on="2025-04-01-preview", params_added_on={ - "2025-04-01-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2025-04-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "filter", + "top", + "skip_token", + "accept", + ] }, api_versions_list=["2025-04-01-preview", "2025-08-01-preview"], ) - def list_by_fleet(self, resource_group_name: str, fleet_name: str, **kwargs: Any) -> ItemPaged["_models.Gate"]: + def list_by_fleet( + self, + resource_group_name: str, + fleet_name: str, + *, + filter: Optional[str] = None, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> ItemPaged["_models.Gate"]: """List Gate resources by Fleet. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -5019,6 +5123,13 @@ def list_by_fleet(self, resource_group_name: str, fleet_name: str, **kwargs: Any :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword filter: Filter the result list using the given expression. Default value is None. + :paramtype filter: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of Gate :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservicefleet.models.Gate] :raises ~azure.core.exceptions.HttpResponseError: @@ -5043,6 +5154,9 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + filter=filter, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -5774,7 +5888,15 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @api_version_validation( method_added_on="2023-03-15-preview", params_added_on={ - "2023-03-15-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2023-03-15-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "top", + "skip_token", + "accept", + ] }, api_versions_list=[ "2023-03-15-preview", @@ -5789,7 +5911,15 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "2025-08-01-preview", ], ) - def list_by_fleet(self, resource_group_name: str, fleet_name: str, **kwargs: Any) -> ItemPaged["_models.UpdateRun"]: + def list_by_fleet( + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any + ) -> ItemPaged["_models.UpdateRun"]: """List UpdateRun resources by Fleet. :param resource_group_name: The name of the resource group. The name is case insensitive. @@ -5797,6 +5927,11 @@ def list_by_fleet(self, resource_group_name: str, fleet_name: str, **kwargs: Any :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of UpdateRun :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservicefleet.models.UpdateRun] :raises ~azure.core.exceptions.HttpResponseError: @@ -5821,6 +5956,8 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -7323,7 +7460,15 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @api_version_validation( method_added_on="2023-08-15-preview", params_added_on={ - "2023-08-15-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2023-08-15-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "top", + "skip_token", + "accept", + ] }, api_versions_list=[ "2023-08-15-preview", @@ -7337,7 +7482,13 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ], ) def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any ) -> ItemPaged["_models.FleetUpdateStrategy"]: """List FleetUpdateStrategy resources by Fleet. @@ -7346,6 +7497,11 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of FleetUpdateStrategy :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservicefleet.models.FleetUpdateStrategy] @@ -7371,6 +7527,8 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, @@ -8057,12 +8215,26 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- @api_version_validation( method_added_on="2024-05-02-preview", params_added_on={ - "2024-05-02-preview": ["api_version", "subscription_id", "resource_group_name", "fleet_name", "accept"] + "2024-05-02-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "fleet_name", + "top", + "skip_token", + "accept", + ] }, api_versions_list=["2024-05-02-preview", "2025-03-01", "2025-04-01-preview", "2025-08-01-preview"], ) def list_by_fleet( - self, resource_group_name: str, fleet_name: str, **kwargs: Any + self, + resource_group_name: str, + fleet_name: str, + *, + top: Optional[int] = None, + skip_token: Optional[str] = None, + **kwargs: Any ) -> ItemPaged["_models.AutoUpgradeProfile"]: """List AutoUpgradeProfile resources by Fleet. @@ -8071,6 +8243,11 @@ def list_by_fleet( :type resource_group_name: str :param fleet_name: The name of the Fleet resource. Required. :type fleet_name: str + :keyword top: The number of result items to return. Default value is None. + :paramtype top: int + :keyword skip_token: The page-continuation token to use with a paged version of this API. + Default value is None. + :paramtype skip_token: str :return: An iterator like instance of AutoUpgradeProfile :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.containerservicefleet.models.AutoUpgradeProfile] @@ -8096,6 +8273,8 @@ def prepare_request(next_link=None): resource_group_name=resource_group_name, fleet_name=fleet_name, subscription_id=self._config.subscription_id, + top=top, + skip_token=skip_token, api_version=self._config.api_version, headers=_headers, params=_params, diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_patch.py b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_patch.py index 8bcb627aa475..87676c65a8f0 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_patch.py +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/azure/mgmt/containerservicefleet/operations/_patch.py @@ -7,9 +7,9 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ -from typing import List -__all__: List[str] = [] # Add all objects you want publicly available to users at this package level + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level def patch_sdk(): diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/generated_samples/fleet_managed_namespaces_update.py b/sdk/containerservice/azure-mgmt-containerservicefleet/generated_samples/fleet_managed_namespaces_update.py new file mode 100644 index 000000000000..e143a0e7f7bf --- /dev/null +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/generated_samples/fleet_managed_namespaces_update.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.containerservicefleet import ContainerServiceFleetMgmtClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-containerservicefleet +# USAGE + python fleet_managed_namespaces_update.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ContainerServiceFleetMgmtClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.fleet_managed_namespaces.begin_update( + resource_group_name="rgfleets", + fleet_name="fleet1", + managed_namespace_name="namespace1", + properties={"tags": {"str": "str"}}, + ).result() + print(response) + + +# x-ms-original-file: 2025-08-01-preview/FleetManagedNamespaces_Update.json +if __name__ == "__main__": + main() diff --git a/sdk/containerservice/azure-mgmt-containerservicefleet/tsp-location.yaml b/sdk/containerservice/azure-mgmt-containerservicefleet/tsp-location.yaml index e556ecdb5c14..73fd3aaef8fd 100644 --- a/sdk/containerservice/azure-mgmt-containerservicefleet/tsp-location.yaml +++ b/sdk/containerservice/azure-mgmt-containerservicefleet/tsp-location.yaml @@ -1,4 +1,4 @@ -directory: specification/containerservice/Fleet.Management -commit: d0cd556bd91d2dda700e983c0d253fa025b324c0 +directory: specification/containerservice/resource-manager/Microsoft.ContainerService/fleet +commit: d3e85dfd3b82ed7f275dc987656a65afda20a8f4 repo: Azure/azure-rest-api-specs additionalDirectories: