From df6956c941010e50567b263765e3539261b6c9ad Mon Sep 17 00:00:00 2001 From: Nithin Date: Sat, 8 Aug 2026 23:02:20 -0400 Subject: [PATCH 01/13] Fix year duration calculation in amg service-account token create (#10181) --- src/amg/HISTORY.rst | 4 ++++ src/amg/azext_amg/_params.py | 2 +- src/amg/azext_amg/custom.py | 2 +- src/amg/azext_amg/tests/latest/test_amg_scenario.py | 11 +++++++++++ src/amg/setup.py | 2 +- 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/amg/HISTORY.rst b/src/amg/HISTORY.rst index eb878506243..6768f500f17 100644 --- a/src/amg/HISTORY.rst +++ b/src/amg/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +3.0.1 +++++++ +* `az grafana service-account token create`: fix duration calculation for year ('y') unit + 0.1.0 ++++++ * Initial release. diff --git a/src/amg/azext_amg/_params.py b/src/amg/azext_amg/_params.py index 0bbbea7e6ec..be40a5772a3 100644 --- a/src/amg/azext_amg/_params.py +++ b/src/amg/azext_amg/_params.py @@ -29,7 +29,7 @@ def load_arguments(self, _): c.argument("components", get_enum_type(["dashboards", "datasources", "folders", "snapshots", "annotations"]), nargs='+', options_list=["-c", "--components"], help="grafana artifact types to backup") c.argument("folders_to_include", nargs='+', options_list=["-i", "--folders-to-include"], help="folders to include in backup or sync") c.argument("folders_to_exclude", nargs='+', options_list=["-e", "--folders-to-exclude"], help="folders to exclude in backup or sync") - c.argument("time_to_live", default="1d", help="The life duration. For example, 1d if your key is going to last fr one day. Supported units are: s,m,h,d,w,M,y") + c.argument("time_to_live", default="1d", help="The life duration. For example, 1d if your key is going to last for one day. Supported units are: s,m,h,d,w,M,y") c.ignore("subscription") # a help argument with self.argument_context("grafana backup") as c: diff --git a/src/amg/azext_amg/custom.py b/src/amg/azext_amg/custom.py index dbe4fac12b4..dc9ff1327f5 100644 --- a/src/amg/azext_amg/custom.py +++ b/src/amg/azext_amg/custom.py @@ -571,7 +571,7 @@ def _convert_duration_to_seconds(time_to_live): "d": 3600 * 24, "w": 3600 * 24 * 7, "M": 3600 * 24 * 30, - "y": 3600 * 24 * 30 * 365 + "y": 3600 * 24 * 365 } unit_name = time_to_live[len(time_to_live) - 1:] try: diff --git a/src/amg/azext_amg/tests/latest/test_amg_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_scenario.py index 8fa5f4e5205..8bf5c647e28 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_scenario.py @@ -24,6 +24,17 @@ def __init__(self, method_name): ApiKeyServiceAccountTokenReplacer() ]) + def test_duration_conversion(self): + from azext_amg.custom import _convert_duration_to_seconds + self.assertEqual(_convert_duration_to_seconds("1s"), 1) + self.assertEqual(_convert_duration_to_seconds("1m"), 60) + self.assertEqual(_convert_duration_to_seconds("1h"), 3600) + self.assertEqual(_convert_duration_to_seconds("1d"), 86400) + self.assertEqual(_convert_duration_to_seconds("1w"), 604800) + self.assertEqual(_convert_duration_to_seconds("1M"), 2592000) + self.assertEqual(_convert_duration_to_seconds("1y"), 31536000) + self.assertEqual(_convert_duration_to_seconds("10y"), 315360000) + @ResourceGroupPreparer(name_prefix='cli_test_amg') def test_amg_crud(self, resource_group): diff --git a/src/amg/setup.py b/src/amg/setup.py index e30f94cb2bb..d8e98746320 100644 --- a/src/amg/setup.py +++ b/src/amg/setup.py @@ -16,7 +16,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '3.0.0' +VERSION = '3.0.1' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers From f06c4a8ff4bfc69377073ae8eb7b0a2ab113ec9c Mon Sep 17 00:00:00 2001 From: Nithin Date: Sat, 8 Aug 2026 23:17:07 -0400 Subject: [PATCH 02/13] Chore: place 3.0.1 section in HISTORY.rst in chronological order --- src/amg/HISTORY.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/amg/HISTORY.rst b/src/amg/HISTORY.rst index 6768f500f17..8fcfb4ff4bf 100644 --- a/src/amg/HISTORY.rst +++ b/src/amg/HISTORY.rst @@ -3,10 +3,6 @@ Release History =============== -3.0.1 -++++++ -* `az grafana service-account token create`: fix duration calculation for year ('y') unit - 0.1.0 ++++++ * Initial release. @@ -172,3 +168,7 @@ Release History * `az grafana integrations`: rename to `az grafana integration` * `az grafana integration monitor`: drop `--monitor-resource-group-name` option; use `--monitor-rg-name` instead * `az grafana data-source`: drop lookup by numeric ID and switch to UID-based endpoints due to deprecated Grafana API + +3.0.1 +++++++ +* `az grafana service-account token create`: fix duration calculation for year ('y') unit From 8b7fd01d79c38b7f8865432f279d081f65966f2d Mon Sep 17 00:00:00 2001 From: Nithin Date: Mon, 10 Aug 2026 21:29:45 -0400 Subject: [PATCH 03/13] Test: refactor test_duration_conversion into separate AmgUnitTest(unittest.TestCase) class --- .../azext_amg/tests/latest/test_amg_scenario.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/amg/azext_amg/tests/latest/test_amg_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_scenario.py index 8bf5c647e28..fdb10432dc4 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_scenario.py @@ -18,12 +18,7 @@ TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) -class AmgScenarioTest(ScenarioTest): - def __init__(self, method_name): - super().__init__(method_name, recording_processors=[ - ApiKeyServiceAccountTokenReplacer() - ]) - +class AmgUnitTest(unittest.TestCase): def test_duration_conversion(self): from azext_amg.custom import _convert_duration_to_seconds self.assertEqual(_convert_duration_to_seconds("1s"), 1) @@ -36,6 +31,13 @@ def test_duration_conversion(self): self.assertEqual(_convert_duration_to_seconds("10y"), 315360000) +class AmgScenarioTest(ScenarioTest): + def __init__(self, method_name): + super().__init__(method_name, recording_processors=[ + ApiKeyServiceAccountTokenReplacer() + ]) + + @ResourceGroupPreparer(name_prefix='cli_test_amg') def test_amg_crud(self, resource_group): From daa8ecc0bf240a842e5301441e04d816ad3ddb57 Mon Sep 17 00:00:00 2001 From: Nithin Date: Wed, 12 Aug 2026 20:22:35 -0400 Subject: [PATCH 04/13] Style: fix blank lines formatting in test_amg_scenario.py --- src/amg/azext_amg/tests/latest/test_amg_scenario.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/amg/azext_amg/tests/latest/test_amg_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_scenario.py index fdb10432dc4..ec29a0744ef 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_scenario.py @@ -37,7 +37,6 @@ def __init__(self, method_name): ApiKeyServiceAccountTokenReplacer() ]) - @ResourceGroupPreparer(name_prefix='cli_test_amg') def test_amg_crud(self, resource_group): From b1864c91fbe7cc41f011174f7c81a03590cb0bec Mon Sep 17 00:00:00 2001 From: Nithin Date: Thu, 13 Aug 2026 09:05:59 -0400 Subject: [PATCH 05/13] Test: add dedicated test_amg_unit.py for duration unit conversion --- .../azext_amg/tests/latest/test_amg_unit.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/amg/azext_amg/tests/latest/test_amg_unit.py diff --git a/src/amg/azext_amg/tests/latest/test_amg_unit.py b/src/amg/azext_amg/tests/latest/test_amg_unit.py new file mode 100644 index 00000000000..0000f67896b --- /dev/null +++ b/src/amg/azext_amg/tests/latest/test_amg_unit.py @@ -0,0 +1,27 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +import sys +import unittest + +# Ensure src/amg (parent directory containing azext_amg) is in sys.path +amg_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..')) +if amg_path not in sys.path: + sys.path.insert(0, amg_path) + +from azext_amg.custom import _convert_duration_to_seconds + + +class AmgUnitTest(unittest.TestCase): + def test_duration_conversion(self): + self.assertEqual(_convert_duration_to_seconds("1s"), 1) + self.assertEqual(_convert_duration_to_seconds("1m"), 60) + self.assertEqual(_convert_duration_to_seconds("1h"), 3600) + self.assertEqual(_convert_duration_to_seconds("1d"), 86400) + self.assertEqual(_convert_duration_to_seconds("1w"), 604800) + self.assertEqual(_convert_duration_to_seconds("1M"), 2592000) + self.assertEqual(_convert_duration_to_seconds("1y"), 31536000) + self.assertEqual(_convert_duration_to_seconds("10y"), 315360000) From 28d5f15ba33add55bae560cf87ab2f78383e0549 Mon Sep 17 00:00:00 2001 From: Nithin Date: Thu, 13 Aug 2026 20:52:17 -0400 Subject: [PATCH 06/13] Fix year duration calculation and AAZSimpleValue principal_id string conversion --- src/amg/azext_amg/custom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amg/azext_amg/custom.py b/src/amg/azext_amg/custom.py index dc9ff1327f5..81ef20f3eaa 100644 --- a/src/amg/azext_amg/custom.py +++ b/src/amg/azext_amg/custom.py @@ -180,7 +180,7 @@ def _create_role_assignment(cli_ctx, principal_id, role_definition_id, scope): for retry_time in range(0, retry_times): try: parameters = RoleAssignmentCreateParameters(role_definition_id=role_definition_id, - principal_id=principal_id, + principal_id=str(principal_id), principal_type=current_principal_type) assignments_client.create(scope=scope, role_assignment_name=assignment_name, parameters=parameters) From 8b94ca5b5d201b0a517662710a8ce60ff5f8d08b Mon Sep 17 00:00:00 2001 From: Nithin Date: Thu, 13 Aug 2026 21:03:16 -0400 Subject: [PATCH 07/13] Fix year duration calculation, AAZSimpleValue conversion, and assertion in migrate scenario test --- src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py index 1bb12efd68d..e1a78c12d96 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py @@ -141,7 +141,7 @@ def test_amg_migrate_dry_run(self, resource_group): self.cmd('grafana delete -g {rg} -n {name} --yes') self.cmd('grafana delete -g {rg} -n {name2} --yes') final_count = len(self.cmd('grafana list').get_output_in_json()) - self.assertTrue(final_count, 0) + self.assertEqual(final_count, 0) @AllowLargeResponse(size_kb=3072) @@ -308,7 +308,7 @@ def test_amg_migrate_remapping(self, resource_group): self.cmd('grafana delete -g {rg} -n {name} --yes') self.cmd('grafana delete -g {rg} -n {name2} --yes') final_count = len(self.cmd('grafana list').get_output_in_json()) - self.assertTrue(final_count, 0) + self.assertEqual(final_count, 0) @AllowLargeResponse(size_kb=3072) From 46425c51fa308f656cc9bd53f0976a89beaeafb6 Mon Sep 17 00:00:00 2001 From: Nithin Date: Fri, 14 Aug 2026 08:31:17 -0400 Subject: [PATCH 08/13] Style: remove duplicate AmgUnitTest class from test_amg_scenario.py --- .../azext_amg/tests/latest/test_amg_scenario.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/amg/azext_amg/tests/latest/test_amg_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_scenario.py index ec29a0744ef..d775439a79c 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_scenario.py @@ -17,20 +17,6 @@ TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) - -class AmgUnitTest(unittest.TestCase): - def test_duration_conversion(self): - from azext_amg.custom import _convert_duration_to_seconds - self.assertEqual(_convert_duration_to_seconds("1s"), 1) - self.assertEqual(_convert_duration_to_seconds("1m"), 60) - self.assertEqual(_convert_duration_to_seconds("1h"), 3600) - self.assertEqual(_convert_duration_to_seconds("1d"), 86400) - self.assertEqual(_convert_duration_to_seconds("1w"), 604800) - self.assertEqual(_convert_duration_to_seconds("1M"), 2592000) - self.assertEqual(_convert_duration_to_seconds("1y"), 31536000) - self.assertEqual(_convert_duration_to_seconds("10y"), 315360000) - - class AmgScenarioTest(ScenarioTest): def __init__(self, method_name): super().__init__(method_name, recording_processors=[ From 861a3e5182fdb54e787fedee35c49989ba5529d9 Mon Sep 17 00:00:00 2001 From: Nithin Date: Fri, 14 Aug 2026 08:43:31 -0400 Subject: [PATCH 09/13] Fix destination folder UID deduplication in migrate.py --- src/amg/azext_amg/migrate.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/amg/azext_amg/migrate.py b/src/amg/azext_amg/migrate.py index 7b5e55ffa54..b59d8e57aff 100644 --- a/src/amg/azext_amg/migrate.py +++ b/src/amg/azext_amg/migrate.py @@ -155,7 +155,6 @@ def _migrate_folders(all_source_folders, all_destination_folders, restore_url, r folders_overwrote_summary = [] restore_folder_uids = {restore_content['uid'] for (restore_content, _) in all_destination_folders} - restore_folder_uids = set() for folder in all_source_folders: content_folder_settings, _ = folder From c2eb632633ccb424d769948a11a9850ec40ef9dd Mon Sep 17 00:00:00 2001 From: Nithin Date: Fri, 14 Aug 2026 18:15:02 -0400 Subject: [PATCH 10/13] Revert unrelated scenario, migrate, and role assignment modifications --- src/amg/azext_amg/custom.py | 2 +- src/amg/azext_amg/migrate.py | 1 + src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py | 4 ++-- src/amg/azext_amg/tests/latest/test_amg_scenario.py | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/amg/azext_amg/custom.py b/src/amg/azext_amg/custom.py index 81ef20f3eaa..dc9ff1327f5 100644 --- a/src/amg/azext_amg/custom.py +++ b/src/amg/azext_amg/custom.py @@ -180,7 +180,7 @@ def _create_role_assignment(cli_ctx, principal_id, role_definition_id, scope): for retry_time in range(0, retry_times): try: parameters = RoleAssignmentCreateParameters(role_definition_id=role_definition_id, - principal_id=str(principal_id), + principal_id=principal_id, principal_type=current_principal_type) assignments_client.create(scope=scope, role_assignment_name=assignment_name, parameters=parameters) diff --git a/src/amg/azext_amg/migrate.py b/src/amg/azext_amg/migrate.py index b59d8e57aff..7b5e55ffa54 100644 --- a/src/amg/azext_amg/migrate.py +++ b/src/amg/azext_amg/migrate.py @@ -155,6 +155,7 @@ def _migrate_folders(all_source_folders, all_destination_folders, restore_url, r folders_overwrote_summary = [] restore_folder_uids = {restore_content['uid'] for (restore_content, _) in all_destination_folders} + restore_folder_uids = set() for folder in all_source_folders: content_folder_settings, _ = folder diff --git a/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py index e1a78c12d96..1bb12efd68d 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_migrate_scenario.py @@ -141,7 +141,7 @@ def test_amg_migrate_dry_run(self, resource_group): self.cmd('grafana delete -g {rg} -n {name} --yes') self.cmd('grafana delete -g {rg} -n {name2} --yes') final_count = len(self.cmd('grafana list').get_output_in_json()) - self.assertEqual(final_count, 0) + self.assertTrue(final_count, 0) @AllowLargeResponse(size_kb=3072) @@ -308,7 +308,7 @@ def test_amg_migrate_remapping(self, resource_group): self.cmd('grafana delete -g {rg} -n {name} --yes') self.cmd('grafana delete -g {rg} -n {name2} --yes') final_count = len(self.cmd('grafana list').get_output_in_json()) - self.assertEqual(final_count, 0) + self.assertTrue(final_count, 0) @AllowLargeResponse(size_kb=3072) diff --git a/src/amg/azext_amg/tests/latest/test_amg_scenario.py b/src/amg/azext_amg/tests/latest/test_amg_scenario.py index d775439a79c..8fa5f4e5205 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_scenario.py +++ b/src/amg/azext_amg/tests/latest/test_amg_scenario.py @@ -17,12 +17,14 @@ TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) + class AmgScenarioTest(ScenarioTest): def __init__(self, method_name): super().__init__(method_name, recording_processors=[ ApiKeyServiceAccountTokenReplacer() ]) + @ResourceGroupPreparer(name_prefix='cli_test_amg') def test_amg_crud(self, resource_group): From 5ecf1abe55acc4a5d9d0fadbc6c691cba5f51cf2 Mon Sep 17 00:00:00 2001 From: Nithin Date: Fri, 14 Aug 2026 20:07:46 -0400 Subject: [PATCH 11/13] Ensure role assignment arguments are string for Track-2 SDK JSON serialization --- src/amg/azext_amg/custom.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/amg/azext_amg/custom.py b/src/amg/azext_amg/custom.py index dc9ff1327f5..03cbb63064f 100644 --- a/src/amg/azext_amg/custom.py +++ b/src/amg/azext_amg/custom.py @@ -170,6 +170,10 @@ def _create_role_assignment(cli_ctx, principal_id, role_definition_id, scope): import time from azure.core.exceptions import HttpResponseError, ResourceExistsError + principal_id = str(principal_id) if principal_id is not None else principal_id + role_definition_id = str(role_definition_id) if role_definition_id is not None else role_definition_id + scope = str(scope) if scope is not None else scope + assignments_client = get_mgmt_service_client(cli_ctx, AuthorizationManagementClient).role_assignments principal_types = [p.value for p in PrincipalType] current_principal_type = principal_types.pop(0) @@ -208,6 +212,14 @@ def _create_role_assignment(cli_ctx, principal_id, role_definition_id, scope): def _delete_role_assignment(cli_ctx, principal_id, role_definition_id=None, scope=None): + if not principal_id: + return + principal_id = str(principal_id) + if role_definition_id: + role_definition_id = str(role_definition_id) + if scope: + scope = str(scope) + assignments_client = get_mgmt_service_client(cli_ctx, AuthorizationManagementClient).role_assignments f = f"principalId eq '{principal_id}'" From 7d26ec3a0a66140f530c7387723a8e9c692be528 Mon Sep 17 00:00:00 2001 From: Nithin Date: Fri, 14 Aug 2026 20:16:09 -0400 Subject: [PATCH 12/13] Add unit test verifying AAZSimpleValue string coercion for role assignments --- .../azext_amg/tests/latest/test_amg_unit.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/amg/azext_amg/tests/latest/test_amg_unit.py b/src/amg/azext_amg/tests/latest/test_amg_unit.py index 0000f67896b..3e0def4e0a4 100644 --- a/src/amg/azext_amg/tests/latest/test_amg_unit.py +++ b/src/amg/azext_amg/tests/latest/test_amg_unit.py @@ -25,3 +25,33 @@ def test_duration_conversion(self): self.assertEqual(_convert_duration_to_seconds("1M"), 2592000) self.assertEqual(_convert_duration_to_seconds("1y"), 31536000) self.assertEqual(_convert_duration_to_seconds("10y"), 315360000) + + def test_create_role_assignment_with_aaz_types(self): + from unittest.mock import MagicMock, patch + from azure.cli.core.aaz._field_value import AAZSimpleValue + from azext_amg.custom import _create_role_assignment + + mock_cli_ctx = MagicMock() + mock_assignments_client = MagicMock() + + # Simulate AAZSimpleValue types that previously caused JSON serialization errors + aaz_principal_id = AAZSimpleValue(None, "2b83823d-1afa-419f-8246-4b5d9df2f7e2") + aaz_role_id = AAZSimpleValue(None, "monitoring-reader-role-id") + aaz_scope = AAZSimpleValue(None, "/subscriptions/00000000-0000-0000-0000-000000000000") + + with patch('azext_amg.custom.get_mgmt_service_client') as mock_get_client: + mock_client = MagicMock() + mock_client.role_assignments = mock_assignments_client + mock_get_client.return_value = mock_client + + _create_role_assignment(mock_cli_ctx, aaz_principal_id, aaz_role_id, aaz_scope) + + # Verify client.create was called with string parameters + self.assertTrue(mock_assignments_client.create.called) + call_kwargs = mock_assignments_client.create.call_args.kwargs + self.assertIsInstance(call_kwargs['parameters'].principal_id, str) + self.assertIsInstance(call_kwargs['parameters'].role_definition_id, str) + self.assertIsInstance(call_kwargs['scope'], str) + self.assertEqual(call_kwargs['parameters'].principal_id, "2b83823d-1afa-419f-8246-4b5d9df2f7e2") + + From 35e9a575dd1a2d46c5ca80fce461cba53c4bdd8c Mon Sep 17 00:00:00 2001 From: Nithin Date: Fri, 14 Aug 2026 20:20:00 -0400 Subject: [PATCH 13/13] Update Monitor api-version to 2025-10-03 in recordings and add unit tests --- .../tests/latest/recordings/test_amg_integrations_monitor.yaml | 2 +- .../tests/latest/recordings/test_amg_private_endpoint.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amg/azext_amg/tests/latest/recordings/test_amg_integrations_monitor.yaml b/src/amg/azext_amg/tests/latest/recordings/test_amg_integrations_monitor.yaml index 2078fe4f55b..4d24a695134 100644 --- a/src/amg/azext_amg/tests/latest/recordings/test_amg_integrations_monitor.yaml +++ b/src/amg/azext_amg/tests/latest/recordings/test_amg_integrations_monitor.yaml @@ -805,7 +805,7 @@ interactions: User-Agent: - AZURECLI/2.71.0 azsdk-python-core/1.33.0 Python/3.9.13 (Windows-10-10.0.22621-SP0) method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_amg000001/providers/Microsoft.Monitor/accounts/clitestamwinteg000003?api-version=2023-04-03 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_amg000001/providers/Microsoft.Monitor/accounts/clitestamwinteg000003?api-version=2025-10-03 response: body: string: '{"properties":{"accountId":"02ed99a7-58e7-4cff-97cf-f10315d34cc9","metrics":{"prometheusQueryEndpoint":"https://clitestamwinteg000003-ehfje8hsg5fvgxf9.westcentralus.prometheus.monitor.azure.com","internalId":"mac_02ed99a7-58e7-4cff-97cf-f10315d34cc9"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_clitestamwinteg000003_westcentralus_managed/providers/Microsoft.Insights/dataCollectionRules/clitestamwinteg000003","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_clitestamwinteg000003_westcentralus_managed/providers/Microsoft.Insights/dataCollectionEndpoints/clitestamwinteg000003"},"publicNetworkAccess":"Enabled"},"location":"westcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_amg000001/providers/microsoft.monitor/accounts/clitestamwinteg000003","name":"clitestamwinteg000003","type":"Microsoft.Monitor/accounts","etag":"\"25008288-0000-0600-0000-689bd2e20000\"","systemData":{"createdBy":"example@example.com","createdByType":"User","createdAt":"2025-08-12T23:48:35.5276267Z","lastModifiedBy":"example@example.com","lastModifiedByType":"User","lastModifiedAt":"2025-08-12T23:48:35.5276267Z"}}' diff --git a/src/amg/azext_amg/tests/latest/recordings/test_amg_private_endpoint.yaml b/src/amg/azext_amg/tests/latest/recordings/test_amg_private_endpoint.yaml index ea9a8d50b75..6e0e5933253 100644 --- a/src/amg/azext_amg/tests/latest/recordings/test_amg_private_endpoint.yaml +++ b/src/amg/azext_amg/tests/latest/recordings/test_amg_private_endpoint.yaml @@ -809,7 +809,7 @@ interactions: User-Agent: - AZURECLI/2.86.0 azsdk-python-core/1.39.0 Python/3.12.10 (Windows-11-10.0.26200-SP0) method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_amg000001/providers/Microsoft.Monitor/accounts/clitestmon000003?api-version=2023-04-03 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_amg000001/providers/Microsoft.Monitor/accounts/clitestmon000003?api-version=2025-10-03 response: body: string: '{"properties":{"accountId":"e8076b65-f6f5-4743-8945-e1c52868faf8","metrics":{"prometheusQueryEndpoint":"https://clitestmon000003-btcvcwdzh3dxcfe5.westcentralus.prometheus.monitor.azure.com","internalId":"mac_e8076b65-f6f5-4743-8945-e1c52868faf8"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_clitestmon000003_westcentralus_managed/providers/Microsoft.Insights/dataCollectionRules/clitestmon000003","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_clitestmon000003_westcentralus_managed/providers/Microsoft.Insights/dataCollectionEndpoints/clitestmon000003"},"publicNetworkAccess":"Enabled"},"location":"westcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_amg000001/providers/microsoft.monitor/accounts/clitestmon000003","name":"clitestmon000003","type":"Microsoft.Monitor/accounts","etag":"\"0d0081bb-0000-0600-0000-6a0e74be0000\"","systemData":{"createdBy":"test@example.com","createdByType":"User","createdAt":"2026-05-21T02:57:59.3654647Z","lastModifiedBy":"test@example.com","lastModifiedByType":"User","lastModifiedAt":"2026-05-21T02:57:59.3654647Z"}}'