Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package azure-cli-core for openSUSE:Factory 
checked in at 2025-06-04 20:29:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/azure-cli-core (Old)
 and      /work/SRC/openSUSE:Factory/.azure-cli-core.new.16005 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "azure-cli-core"

Wed Jun  4 20:29:30 2025 rev:81 rq:1282708 version:2.73.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/azure-cli-core/azure-cli-core.changes    
2025-05-06 16:43:34.009614735 +0200
+++ /work/SRC/openSUSE:Factory/.azure-cli-core.new.16005/azure-cli-core.changes 
2025-06-04 20:29:38.291679582 +0200
@@ -1,0 +2,8 @@
+Wed Jun  4 10:18:57 UTC 2025 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- New upstream release
+  + Version 2.73.0
+  + For detailed information about changes see the
+    HISTORY.rst file provided with this package
+
+-------------------------------------------------------------------

Old:
----
  azure_cli_core-2.72.0.tar.gz

New:
----
  azure_cli_core-2.73.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ azure-cli-core.spec ++++++
--- /var/tmp/diff_new_pack.k2Wdp9/_old  2025-06-04 20:29:38.863703280 +0200
+++ /var/tmp/diff_new_pack.k2Wdp9/_new  2025-06-04 20:29:38.867703446 +0200
@@ -24,7 +24,7 @@
 %global _sitelibdir %{%{pythons}_sitelib}
 
 Name:           azure-cli-core
-Version:        2.72.0
+Version:        2.73.0
 Release:        0
 Summary:        Microsoft Azure CLI Core Module
 License:        MIT

++++++ azure_cli_core-2.72.0.tar.gz -> azure_cli_core-2.73.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_cli_core-2.72.0/HISTORY.rst 
new/azure_cli_core-2.73.0/HISTORY.rst
--- old/azure_cli_core-2.72.0/HISTORY.rst       2025-04-28 11:28:01.000000000 
+0200
+++ new/azure_cli_core-2.73.0/HISTORY.rst       2025-05-13 13:09:47.000000000 
+0200
@@ -3,6 +3,11 @@
 Release History
 ===============
 
+2.73.0
+++++++
+* [BREAKING CHANGE] Remove azure stack profiles `2020-09-01-hybrid`, 
`2019-03-01-hybrid`, `2018-03-01-hybrid` and `2017-03-09-profile` (#31307)
+* Use MSAL for managed identity authentication (#25959)
+
 2.72.0
 ++++++
 * Minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_cli_core-2.72.0/PKG-INFO 
new/azure_cli_core-2.73.0/PKG-INFO
--- old/azure_cli_core-2.72.0/PKG-INFO  2025-04-28 11:28:40.545786100 +0200
+++ new/azure_cli_core-2.73.0/PKG-INFO  2025-05-13 13:10:28.116465000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: azure-cli-core
-Version: 2.72.0
+Version: 2.73.0
 Summary: Microsoft Azure Command-Line Tools Core Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_cli_core-2.72.0/azure/cli/core/__init__.py 
new/azure_cli_core-2.73.0/azure/cli/core/__init__.py
--- old/azure_cli_core-2.72.0/azure/cli/core/__init__.py        2025-04-28 
11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/__init__.py        2025-05-13 
13:09:47.000000000 +0200
@@ -4,7 +4,7 @@
 # 
--------------------------------------------------------------------------------------------
 # pylint: disable=line-too-long
 
-__version__ = "2.72.0"
+__version__ = "2.73.0"
 
 import os
 import sys
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure/cli/core/_breaking_change.py 
new/azure_cli_core-2.73.0/azure/cli/core/_breaking_change.py
--- old/azure_cli_core-2.72.0/azure/cli/core/_breaking_change.py        
2025-04-28 11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/_breaking_change.py        
2025-05-13 13:09:47.000000000 +0200
@@ -3,13 +3,3 @@
 # Licensed under the MIT License. See License.txt in the project root for 
license information.
 # 
--------------------------------------------------------------------------------------------
 # pylint: disable=line-too-long
-
-from azure.cli.core.breaking_change import AzCLIOtherChange, 
register_conditional_breaking_change
-
-register_conditional_breaking_change(
-    tag='CloudProfilesDeprecate',
-    breaking_change=AzCLIOtherChange(
-        cmd='',
-        message="Starting from 2.73.0, the azure stack profiles 
('2017-03-09-profile', '2018-03-01-hybrid', '2019-03-01-hybrid', 
'2020-09-01-hybrid') will be deprecated. Please use the 'latest' profile or the 
CLI 2.66.* (LTS) version instead."
-    )
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_cli_core-2.72.0/azure/cli/core/_profile.py 
new/azure_cli_core-2.73.0/azure/cli/core/_profile.py
--- old/azure_cli_core-2.72.0/azure/cli/core/_profile.py        2025-04-28 
11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/_profile.py        2025-05-13 
13:09:47.000000000 +0200
@@ -220,27 +220,20 @@
         self._set_subscriptions(consolidated)
         return deepcopy(consolidated)
 
-    def login_with_managed_identity(self, identity_id=None, client_id=None, 
object_id=None, resource_id=None,
-                                    allow_no_subscriptions=None):
-        if _use_msal_managed_identity(self.cli_ctx):
-            if identity_id:
-                raise CLIError('--username is not supported by MSAL managed 
identity. '
-                               'Use --client-id, --object-id or --resource-id 
instead.')
-            return self.login_with_managed_identity_msal(
-                client_id=client_id, object_id=object_id, 
resource_id=resource_id,
-                allow_no_subscriptions=allow_no_subscriptions)
-
+    def login_with_managed_identity_msrestazure(self, client_id=None, 
object_id=None, resource_id=None,
+                                                allow_no_subscriptions=None):
+        # Old way of using msrestazure for managed identity
         import jwt
-        from azure.mgmt.core.tools import is_valid_resource_id
         from azure.cli.core.auth.adal_authentication import 
MSIAuthenticationWrapper
         resource = self.cli_ctx.cloud.endpoints.active_directory_resource_id
 
-        id_arg_count = len([arg for arg in (client_id, object_id, resource_id, 
identity_id) if arg])
+        id_arg_count = len([arg for arg in (client_id, object_id, resource_id) 
if arg])
         if id_arg_count > 1:
-            raise CLIError('Usage error: Provide only one of --client-id, 
--object-id, --resource-id, or --username.')
+            raise CLIError('Usage error: Provide only one of --client-id, 
--object-id, --resource-id.')
 
         if id_arg_count == 0:
             identity_type = MsiAccountTypes.system_assigned
+            identity_id = None
             msi_creds = MSIAuthenticationWrapper(resource=resource)
         elif client_id:
             identity_type = MsiAccountTypes.user_assigned_client_id
@@ -254,37 +247,6 @@
             identity_type = MsiAccountTypes.user_assigned_resource_id
             identity_id = resource_id
             msi_creds = MSIAuthenticationWrapper(resource=resource, 
msi_res_id=resource_id)
-        # The old way of re-using the same --username for 3 types of ID
-        elif identity_id:
-            if is_valid_resource_id(identity_id):
-                msi_creds = MSIAuthenticationWrapper(resource=resource, 
msi_res_id=identity_id)
-                identity_type = MsiAccountTypes.user_assigned_resource_id
-            else:
-                authenticated = False
-                from azure.cli.core.azclierror import AzureResponseError
-                try:
-                    msi_creds = MSIAuthenticationWrapper(resource=resource, 
client_id=identity_id)
-                    identity_type = MsiAccountTypes.user_assigned_client_id
-                    authenticated = True
-                except AzureResponseError as ex:
-                    if 'http error: 400, reason: Bad Request' in ex.error_msg:
-                        logger.info('Sniff: not an MSI client id')
-                    else:
-                        raise
-
-                if not authenticated:
-                    try:
-                        identity_type = MsiAccountTypes.user_assigned_object_id
-                        msi_creds = 
MSIAuthenticationWrapper(resource=resource, object_id=identity_id)
-                        authenticated = True
-                    except AzureResponseError as ex:
-                        if 'http error: 400, reason: Bad Request' in 
ex.error_msg:
-                            logger.info('Sniff: not an MSI object id')
-                        else:
-                            raise
-
-                if not authenticated:
-                    raise CLIError('Failed to connect to MSI, check your 
managed service identity id.')
 
         token_entry = msi_creds.token
         token = token_entry['access_token']
@@ -308,8 +270,13 @@
         self._set_subscriptions(consolidated)
         return deepcopy(consolidated)
 
-    def login_with_managed_identity_msal(self, client_id=None, object_id=None, 
resource_id=None,
-                                         allow_no_subscriptions=None):
+    def login_with_managed_identity(self, client_id=None, object_id=None, 
resource_id=None,
+                                    allow_no_subscriptions=None):
+        if not _use_msal_managed_identity(self.cli_ctx):
+            return self.login_with_managed_identity_msrestazure(
+                client_id=client_id, object_id=object_id, 
resource_id=resource_id,
+                allow_no_subscriptions=allow_no_subscriptions)
+
         import jwt
         from .auth.constants import ACCESS_TOKEN
 
@@ -1020,10 +987,8 @@
 
 
 def _use_msal_managed_identity(cli_ctx):
-    # This indicates an Azure Arc-enabled server
-    from msal.managed_identity import get_managed_identity_source, AZURE_ARC
     from azure.cli.core.telemetry import set_use_msal_managed_identity
-    # PREVIEW: Use core.use_msal_managed_identity=true to enable managed 
identity authentication with MSAL
-    use_msal_managed_identity = cli_ctx.config.getboolean('core', 
'use_msal_managed_identity', fallback=False)
+    # Use core.use_msal_managed_identity=false to use the old msrestazure 
implementation
+    use_msal_managed_identity = cli_ctx.config.getboolean('core', 
'use_msal_managed_identity', fallback=True)
     set_use_msal_managed_identity(use_msal_managed_identity)
-    return use_msal_managed_identity or get_managed_identity_source() == 
AZURE_ARC
+    return use_msal_managed_identity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure/cli/core/auth/binary_cache.py 
new/azure_cli_core-2.73.0/azure/cli/core/auth/binary_cache.py
--- old/azure_cli_core-2.72.0/azure/cli/core/auth/binary_cache.py       
2025-04-28 11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/auth/binary_cache.py       
2025-05-13 13:09:47.000000000 +0200
@@ -42,10 +42,11 @@
         logger.debug("load: %s", self.filename)
         try:
             self.data = self._load()
-        except (pickle.UnpicklingError, EOFError) as ex:
-            # We still get exception after retry:
+        except Exception as ex:  # pylint: disable=broad-exception-caught
+            # If we still get exception after retry, ignore all types of 
exceptions and use a new cache.
             # - pickle.UnpicklingError is caused by corrupted cache file, 
perhaps due to concurrent writes.
             # - EOFError is caused by empty cache file created by other az 
instance, but hasn't been filled yet.
+            # - AttributeError is caused by reading cache generated by 
different MSAL versions.
             logger.debug("Failed to load cache: %s. Using a fresh one.", ex)
             self.data = {}  # Ignore a non-existing or corrupted http_cache
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure/cli/core/auth/msal_credentials.py 
new/azure_cli_core-2.73.0/azure/cli/core/auth/msal_credentials.py
--- old/azure_cli_core-2.72.0/azure/cli/core/auth/msal_credentials.py   
2025-04-28 11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/auth/msal_credentials.py   
2025-05-13 13:09:47.000000000 +0200
@@ -68,25 +68,32 @@
             # browser is available.
             if 'data' in kwargs:
                 logger.warning(ex)
-                logger.warning("\nThe default web browser has been opened at 
%s for scope '%s'. "
-                               "Please continue the login in the web browser.",
-                               
self._msal_app.authority.authorization_endpoint, ' '.join(scopes))
-
-                from .util import read_response_templates
-                success_template, error_template = read_response_templates()
-
-                result = self._msal_app.acquire_token_interactive(
-                    scopes, login_hint=self._account['username'],
-                    port=8400 if self._msal_app.authority.is_adfs else None,
-                    success_template=success_template, 
error_template=error_template, **kwargs)
-                check_result(result)
-
+                result = self._acquire_token_interactive(scopes, **kwargs)
             # For other scenarios like Storage Conditional Access MFA step-up, 
do not
             # launch browser, but show the error message and `az login` 
command instead.
             else:
                 raise
         return result
 
+    def _acquire_token_interactive(self, scopes, **kwargs):
+        from .util import read_response_templates
+        success_template, error_template = read_response_templates()
+
+        def _prompt_launching_ui(ui=None, **_):
+            logger.warning(
+                "Interactively acquiring token for scope '%s'. Continue the 
login in the %s.",
+                ' '.join(scopes), 'web browser' if ui == 'browser' else 
'pop-up window')
+
+        result = self._msal_app.acquire_token_interactive(
+            scopes, login_hint=self._account['username'],
+            port=8400 if self._msal_app.authority.is_adfs else None,
+            success_template=success_template, error_template=error_template,
+            parent_window_handle=self._msal_app.CONSOLE_WINDOW_HANDLE,
+            on_before_launching_ui=_prompt_launching_ui,
+            **kwargs)
+        check_result(result)
+        return result
+
 
 class ServicePrincipalCredential:  # pylint: disable=too-few-public-methods
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure/cli/core/breaking_change.py 
new/azure_cli_core-2.73.0/azure/cli/core/breaking_change.py
--- old/azure_cli_core-2.72.0/azure/cli/core/breaking_change.py 2025-04-28 
11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/breaking_change.py 2025-05-13 
13:09:47.000000000 +0200
@@ -15,8 +15,8 @@
 
 logger = get_logger()
 
-NEXT_BREAKING_CHANGE_RELEASE = '2.73.0'
-NEXT_BREAKING_CHANGE_DATE = 'May 2025'
+NEXT_BREAKING_CHANGE_RELEASE = '2.79.0'
+NEXT_BREAKING_CHANGE_DATE = 'Nov 2025'
 DEFAULT_BREAKING_CHANGE_TAG = '[Breaking Change]'
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_cli_core-2.72.0/azure/cli/core/cloud.py 
new/azure_cli_core-2.73.0/azure/cli/core/cloud.py
--- old/azure_cli_core-2.72.0/azure/cli/core/cloud.py   2025-04-28 
11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/cloud.py   2025-05-13 
13:09:47.000000000 +0200
@@ -583,6 +583,7 @@
     except configparser.MissingSectionHeaderError:
         os.remove(CLOUD_CONFIG_FILE)
         logger.warning("'%s' is in bad format and has been removed.", 
CLOUD_CONFIG_FILE)
+    active_cloud_name = get_active_cloud_name(cli_ctx)
     for section in config.sections():
         c = Cloud(section)
         for option in config.options(section):
@@ -596,13 +597,26 @@
             # If profile isn't set, use latest
             setattr(c, 'profile', 'latest')
         if c.profile not in API_PROFILES:
-            raise CLIError('Profile {} does not exist or is not 
supported.'.format(c.profile))
+            if c.profile in (
+                "2017-03-09-profile",
+                "2018-03-01-hybrid",
+                "2019-03-01-hybrid",
+                "2020-09-01-hybrid",
+            ):
+                if c.name == active_cloud_name:
+                    # only apply to the active cloud
+                    logger.error(
+                        "The azure stack profile '%s' has been deprecated and 
removed, using the 'latest' profile instead.\n"
+                        "To continue using Azure Stack, please install the 
Azure CLI `2.66.*` (LTS) version. For more details, refer to: 
https://learn.microsoft.com/en-us/cli/azure/whats-new-overview#important-notice-for-azure-stack-hub-customers";,
 c.profile
+                    )
+                    c.profile = 'latest'
+            else:
+                raise CLIError('Profile {} does not exist or is not 
supported.'.format(c.profile))
         if not c.endpoints.has_endpoint_set('management') and \
                 c.endpoints.has_endpoint_set('resource_manager'):
             # If management endpoint not set, use resource manager endpoint
             c.endpoints.management = c.endpoints.resource_manager
         clouds.append(c)
-    active_cloud_name = get_active_cloud_name(cli_ctx)
     for c in clouds:
         if c.name == active_cloud_name:
             c.is_active = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure/cli/core/profiles/__init__.py 
new/azure_cli_core-2.73.0/azure/cli/core/profiles/__init__.py
--- old/azure_cli_core-2.72.0/azure/cli/core/profiles/__init__.py       
2025-04-28 11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/profiles/__init__.py       
2025-05-13 13:09:47.000000000 +0200
@@ -94,10 +94,6 @@
 # API Profiles currently supported in the CLI.
 API_PROFILES = {
     'latest': AZURE_API_PROFILES['latest'],
-    '2017-03-09-profile': AZURE_API_PROFILES['2017-03-09-profile'],
-    '2018-03-01-hybrid': AZURE_API_PROFILES['2018-03-01-hybrid'],
-    '2019-03-01-hybrid': AZURE_API_PROFILES['2019-03-01-hybrid'],
-    '2020-09-01-hybrid': AZURE_API_PROFILES['2020-09-01-hybrid']
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure/cli/core/profiles/_shared.py 
new/azure_cli_core-2.73.0/azure/cli/core/profiles/_shared.py
--- old/azure_cli_core-2.72.0/azure/cli/core/profiles/_shared.py        
2025-04-28 11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure/cli/core/profiles/_shared.py        
2025-05-13 13:09:47.000000000 +0200
@@ -191,15 +191,14 @@
             'managed_hsms': '2024-11-01'
         }),
         ResourceType.MGMT_AUTHORIZATION: SDKProfile('2022-04-01', {
-            'classic_administrators': '2015-06-01',
             'role_definitions': '2022-05-01-preview',
             'provider_operations_metadata': '2018-01-01-preview'
         }),
-        ResourceType.MGMT_CONTAINERREGISTRY: SDKProfile('2024-11-01-preview', {
-            'agent_pools': '2019-06-01-preview',
-            'tasks': '2019-06-01-preview',
-            'task_runs': '2019-06-01-preview',
-            'runs': '2019-06-01-preview',
+        ResourceType.MGMT_CONTAINERREGISTRY: SDKProfile('2025-03-01-preview', {
+            'agent_pools': '2025-03-01-preview',
+            'tasks': '2025-03-01-preview',
+            'task_runs': '2025-03-01-preview',
+            'runs': '2025-03-01-preview',
             'network_rule': '2021-08-01-preview',
             'cache_rules': '2023-01-01-preview',
             'credential_sets': '2023-01-01-preview'
@@ -221,39 +220,7 @@
         ResourceType.DATA_COSMOS_TABLE: '2017-04-17',
         ResourceType.MGMT_SERVICEBUS: '2022-10-01-preview',
         ResourceType.MGMT_EVENTHUB: '2022-01-01-preview',
-        ResourceType.MGMT_MONITOR: SDKProfile('2019-06-01', {
-            'action_groups': '2022-06-01',
-            'activity_log_alerts': '2017-04-01',
-            'activity_logs': '2015-04-01',
-            'alert_rule_incidents': '2016-03-01',
-            'alert_rules': '2016-03-01',
-            'autoscale_settings': '2022-10-01',
-            'baseline': '2018-09-01',
-            'baselines': '2019-03-01',
-            'diagnostic_settings': '2021-05-01-preview',
-            'diagnostic_settings_category': '2017-05-01-preview',
-            'event_categories': '2015-04-01',
-            'guest_diagnostics_settings': '2018-06-01-preview',
-            'guest_diagnostics_settings_association': '2018-06-01-preview',
-            'log_profiles': '2016-03-01',
-            'metric_alerts': '2018-03-01',
-            'metric_alerts_status': '2018-03-01',
-            'metric_baseline': '2018-09-01',
-            'metric_definitions': '2018-01-01',
-            'metric_namespaces': '2017-12-01-preview',
-            'metrics': '2018-01-01',
-            'operations': '2015-04-01',
-            'scheduled_query_rules': '2018-04-16',
-            'service_diagnostic_settings': '2016-09-01',
-            'tenant_activity_logs': '2015-04-01',
-            'vm_insights': '2018-11-27-preview',
-            'private_link_resources': '2019-10-17-preview',
-            'private_link_scoped_resources': '2019-10-17-preview',
-            'private_link_scope_operation_status': '2019-10-17-preview',
-            'private_link_scopes': '2019-10-17-preview',
-            'private_endpoint_connections': '2019-10-17-preview',
-            'subscription_diagnostic_settings': '2017-05-01-preview'
-        }),
+        ResourceType.MGMT_MONITOR: None,
         ResourceType.MGMT_MSI: '2023-01-31',
         ResourceType.MGMT_APPSERVICE: '2023-01-01',
         ResourceType.MGMT_IOTHUB: '2023-06-30-preview',
@@ -264,162 +231,6 @@
         ResourceType.MGMT_CUSTOMLOCATION: '2021-03-15-preview',
         ResourceType.MGMT_CONTAINERSERVICE: SDKProfile('2025-02-01'),
         ResourceType.MGMT_APPCONTAINERS: '2022-10-01',
-    },
-    '2020-09-01-hybrid': {
-        ResourceType.MGMT_STORAGE: '2019-06-01',
-        ResourceType.MGMT_NETWORK: '2018-11-01',
-        ResourceType.MGMT_COMPUTE: SDKProfile('2020-06-01', {
-            'resource_skus': '2019-04-01',
-            'disks': '2019-07-01',
-            'disk_encryption_sets': '2019-07-01',
-            'disk_accesses': '2020-05-01',
-            'snapshots': '2019-07-01',
-            'galleries': '2019-12-01',
-            'gallery_images': '2019-12-01',
-            'gallery_image_versions': '2019-12-01',
-            'virtual_machine_scale_sets': '2020-06-01'
-        }),
-        ResourceType.MGMT_KEYVAULT: '2016-10-01',
-        ResourceType.MGMT_MSI: '2018-11-30',
-        ResourceType.MGMT_RESOURCE_FEATURES: '2021-07-01',
-        ResourceType.MGMT_RESOURCE_LINKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_LOCKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_POLICY: '2016-12-01',
-        ResourceType.MGMT_RESOURCE_RESOURCES: '2019-10-01',
-        ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS: '2016-06-01',
-        ResourceType.MGMT_RESOURCE_TEMPLATESPECS: '2015-01-01',
-        ResourceType.MGMT_RESOURCE_PRIVATELINKS: '2020-05-01',
-        ResourceType.MGMT_RESOURCE_MANAGEDAPPLICATIONS: '2019-07-01',
-        ResourceType.MGMT_NETWORK_DNS: '2016-04-01',
-        ResourceType.MGMT_AUTHORIZATION: SDKProfile('2015-07-01', {
-            'classic_administrators': '2015-06-01',
-            'policy_assignments': '2016-12-01',
-            'policy_definitions': '2016-12-01'
-        }),
-        # The order does make things different.
-        # Please keep ResourceType.DATA_KEYVAULT_KEYS before 
ResourceType.DATA_KEYVAULT
-        ResourceType.DATA_KEYVAULT_CERTIFICATES: None,
-        ResourceType.DATA_KEYVAULT_KEYS: None,
-        ResourceType.DATA_KEYVAULT_SECRETS: None,
-        ResourceType.DATA_STORAGE: '2018-11-09',
-        ResourceType.DATA_STORAGE_BLOB: '2019-07-07',
-        ResourceType.DATA_STORAGE_FILEDATALAKE: '2019-07-07',
-        ResourceType.DATA_STORAGE_FILESHARE: '2019-07-07',
-        ResourceType.DATA_STORAGE_QUEUE: '2019-07-07',
-        ResourceType.DATA_COSMOS_TABLE: '2017-04-17',
-        ResourceType.MGMT_APPSERVICE: '2018-02-01',
-        ResourceType.MGMT_EVENTHUB: '2022-01-01-preview',
-        ResourceType.MGMT_SERVICEBUS: '2022-10-01-preview',
-        ResourceType.MGMT_IOTHUB: '2019-07-01-preview',
-        ResourceType.MGMT_DATABOXEDGE: '2019-08-01',
-        ResourceType.MGMT_CONTAINERREGISTRY: '2019-05-01',
-        ResourceType.MGMT_CONTAINERSERVICE: SDKProfile('2020-11-01', {
-            'container_services': '2017-07-01',
-            'open_shift_managed_clusters': '2019-09-30-preview'
-        })
-    },
-    '2019-03-01-hybrid': {
-        ResourceType.MGMT_STORAGE: '2017-10-01',
-        ResourceType.MGMT_NETWORK: '2017-10-01',
-        ResourceType.MGMT_COMPUTE: SDKProfile('2017-12-01', {
-            'resource_skus': '2017-09-01',
-            'disks': '2017-03-30',
-            'snapshots': '2017-03-30'
-        }),
-        ResourceType.MGMT_MSI: '2018-11-30',
-        ResourceType.MGMT_RESOURCE_LINKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_LOCKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_POLICY: '2016-12-01',
-        ResourceType.MGMT_RESOURCE_RESOURCES: '2018-05-01',
-        ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS: '2016-06-01',
-        ResourceType.MGMT_RESOURCE_TEMPLATESPECS: '2015-01-01',
-        ResourceType.MGMT_RESOURCE_PRIVATELINKS: '2020-05-01',
-        ResourceType.MGMT_RESOURCE_MANAGEDAPPLICATIONS: '2019-07-01',
-        ResourceType.MGMT_NETWORK_DNS: '2016-04-01',
-        ResourceType.MGMT_KEYVAULT: '2016-10-01',
-        ResourceType.MGMT_AUTHORIZATION: SDKProfile('2015-07-01', {
-            'classic_administrators': '2015-06-01',
-            'policy_assignments': '2016-12-01',
-            'policy_definitions': '2016-12-01'
-        }),
-        # The order does make things different.
-        # Please keep ResourceType.DATA_KEYVAULT_KEYS before 
ResourceType.DATA_KEYVAULT
-        ResourceType.DATA_KEYVAULT_CERTIFICATES: None,
-        ResourceType.DATA_KEYVAULT_KEYS: None,
-        ResourceType.DATA_KEYVAULT_SECRETS: None,
-        ResourceType.DATA_STORAGE: '2017-11-09',
-        ResourceType.DATA_STORAGE_BLOB: '2017-11-09',
-        ResourceType.DATA_STORAGE_FILEDATALAKE: '2017-11-09',
-        ResourceType.DATA_STORAGE_FILESHARE: '2017-11-09',
-        ResourceType.DATA_STORAGE_QUEUE: '2017-11-09',
-        ResourceType.DATA_COSMOS_TABLE: '2017-04-17',
-        # Full MultiAPI support is not done in AppService, the line below is 
merely
-        # to have commands show up in the hybrid profile which happens to have 
the latest
-        # API versions
-        ResourceType.MGMT_APPSERVICE: '2018-02-01',
-        ResourceType.MGMT_EVENTHUB: '2022-01-01-preview',
-        ResourceType.MGMT_SERVICEBUS: '2022-10-01-preview',
-        ResourceType.MGMT_IOTHUB: '2019-03-22',
-        ResourceType.MGMT_DATABOXEDGE: '2019-08-01'
-    },
-    '2018-03-01-hybrid': {
-        ResourceType.MGMT_STORAGE: '2016-01-01',
-        ResourceType.MGMT_NETWORK: '2017-10-01',
-        ResourceType.MGMT_COMPUTE: SDKProfile('2017-03-30'),
-        ResourceType.MGMT_MSI: '2018-11-30',
-        ResourceType.MGMT_RESOURCE_LINKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_LOCKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_POLICY: '2016-12-01',
-        ResourceType.MGMT_RESOURCE_RESOURCES: '2018-02-01',
-        ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS: '2016-06-01',
-        ResourceType.MGMT_RESOURCE_TEMPLATESPECS: '2015-01-01',
-        ResourceType.MGMT_RESOURCE_PRIVATELINKS: '2020-05-01',
-        ResourceType.MGMT_RESOURCE_MANAGEDAPPLICATIONS: '2019-07-01',
-        ResourceType.MGMT_NETWORK_DNS: '2016-04-01',
-        ResourceType.MGMT_KEYVAULT: '2016-10-01',
-        ResourceType.MGMT_AUTHORIZATION: SDKProfile('2015-07-01', {
-            'classic_administrators': '2015-06-01'
-        }),
-        # The order does make things different.
-        # Please keep ResourceType.DATA_KEYVAULT_KEYS before 
ResourceType.DATA_KEYVAULT
-        ResourceType.DATA_KEYVAULT_CERTIFICATES: None,
-        ResourceType.DATA_KEYVAULT_KEYS: None,
-        ResourceType.DATA_KEYVAULT_SECRETS: None,
-        ResourceType.DATA_STORAGE: '2017-04-17',
-        ResourceType.DATA_STORAGE_BLOB: '2017-04-17',
-        ResourceType.DATA_STORAGE_FILEDATALAKE: '2017-04-17',
-        ResourceType.DATA_STORAGE_FILESHARE: '2017-04-17',
-        ResourceType.DATA_STORAGE_QUEUE: '2017-04-17',
-        ResourceType.DATA_COSMOS_TABLE: '2017-04-17'
-    },
-    '2017-03-09-profile': {
-        ResourceType.MGMT_STORAGE: '2016-01-01',
-        ResourceType.MGMT_NETWORK: '2015-06-15',
-        ResourceType.MGMT_COMPUTE: SDKProfile('2016-03-30'),
-        ResourceType.MGMT_MSI: '2018-11-30',
-        ResourceType.MGMT_RESOURCE_LINKS: '2016-09-01',
-        ResourceType.MGMT_RESOURCE_LOCKS: '2015-01-01',
-        ResourceType.MGMT_RESOURCE_POLICY: '2015-10-01-preview',
-        ResourceType.MGMT_RESOURCE_RESOURCES: '2016-02-01',
-        ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS: '2016-06-01',
-        ResourceType.MGMT_RESOURCE_PRIVATELINKS: '2020-05-01',
-        ResourceType.MGMT_RESOURCE_TEMPLATESPECS: '2015-01-01',
-        ResourceType.MGMT_RESOURCE_MANAGEDAPPLICATIONS: '2019-07-01',
-        ResourceType.MGMT_NETWORK_DNS: '2016-04-01',
-        ResourceType.MGMT_KEYVAULT: '2016-10-01',
-        ResourceType.MGMT_AUTHORIZATION: SDKProfile('2015-07-01', {
-            'classic_administrators': '2015-06-01'
-        }),
-        # The order does make things different.
-        # Please keep ResourceType.DATA_KEYVAULT_KEYS before 
ResourceType.DATA_KEYVAULT
-        ResourceType.DATA_KEYVAULT_CERTIFICATES: None,
-        ResourceType.DATA_KEYVAULT_KEYS: None,
-        ResourceType.DATA_KEYVAULT_SECRETS: None,
-        ResourceType.DATA_STORAGE: '2015-04-05',
-        ResourceType.DATA_STORAGE_BLOB: '2015-04-05',
-        ResourceType.DATA_STORAGE_FILEDATALAKE: '2015-04-05',
-        ResourceType.DATA_STORAGE_FILESHARE: '2015-04-05',
-        ResourceType.DATA_STORAGE_QUEUE: '2015-04-05'
     }
 }
 
@@ -427,6 +238,10 @@
 # We should avoid using ad hoc API versions,
 # use the version in a profile as much as possible.
 AD_HOC_API_VERSIONS = {
+    ResourceType.MGMT_IOTHUB: {
+        # 
src/azure-cli/azure/cli/command_modules/iot/custom.py#iot_hub_devicestream_show
+        'iot_hub_resource': '2019-07-01-preview',
+    },
     ResourceType.MGMT_APPSERVICE: {
         # src/azure-cli/azure/cli/command_modules/appservice/_constants.py:68
         'app_service_certificate_orders': '2022-09-01'
@@ -440,6 +255,8 @@
         'VERSION_2022_02_01_PREVIEW': "2022-02-01-preview",
         'VERSION_2023_11_01_PREVIEW': "2023-11-01-preview",
         'VERSION_2024_11_01_PREVIEW': "2024-11-01-preview",
+        'VERSION_2025_03_01_PREVIEW': "2025-03-01-preview",
+        'VERSION_2025_04_01': "2025-04-01"
     },
     ResourceType.MGMT_CONTAINERSERVICE: {
         # 
src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_custom.py:50
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure_cli_core-2.72.0/azure_cli_core.egg-info/PKG-INFO 
new/azure_cli_core-2.73.0/azure_cli_core.egg-info/PKG-INFO
--- old/azure_cli_core-2.72.0/azure_cli_core.egg-info/PKG-INFO  2025-04-28 
11:28:40.000000000 +0200
+++ new/azure_cli_core-2.73.0/azure_cli_core.egg-info/PKG-INFO  2025-05-13 
13:10:28.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: azure-cli-core
-Version: 2.72.0
+Version: 2.73.0
 Summary: Microsoft Azure Command-Line Tools Core Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure_cli_core-2.72.0/setup.py 
new/azure_cli_core-2.73.0/setup.py
--- old/azure_cli_core-2.72.0/setup.py  2025-04-28 11:28:01.000000000 +0200
+++ new/azure_cli_core-2.73.0/setup.py  2025-05-13 13:09:47.000000000 +0200
@@ -8,7 +8,7 @@
 from codecs import open
 from setuptools import setup, find_packages
 
-VERSION = "2.72.0"
+VERSION = "2.73.0"
 
 # If we have source, validate that our version numbers match
 # This should prevent uploading releases with mismatched versions.

Reply via email to