From e6f0dbb4da2273cdc8aaf7120dc4e27a8ab1f3aa Mon Sep 17 00:00:00 2001 From: devi0042JD <247394410+devi0042JD@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:38:52 +0000 Subject: [PATCH 1/2] Add AzureClouds.AZURE_BLEUCLOUD cloud setting for the Bleu national partner cloud (France) azure-core: adds the AZURE_BLEUCLOUD member to the AzureClouds enum so the Bleu cloud can be selected via AZURE_SDK_CLOUD_CONF or settings.azure_cloud. azure-mgmt-core: get_arm_endpoints now returns the Bleu ARM endpoint (management.sovcloud-api.fr) and credential scopes, and the minimum azure-core requirement is raised to 1.42.0 accordingly. --- sdk/core/azure-core/CHANGELOG.md | 6 ++++++ sdk/core/azure-core/azure/core/_azure_clouds.py | 3 +++ sdk/core/azure-core/azure/core/_version.py | 2 +- sdk/core/azure-core/tests/test_settings.py | 5 +++++ sdk/core/azure-mgmt-core/CHANGELOG.md | 6 +++++- sdk/core/azure-mgmt-core/azure/mgmt/core/_version.py | 2 +- sdk/core/azure-mgmt-core/azure/mgmt/core/tools.py | 8 ++++++-- sdk/core/azure-mgmt-core/setup.py | 2 +- sdk/core/azure-mgmt-core/tests/test_arm_endpoints.py | 5 +++++ 9 files changed, 33 insertions(+), 6 deletions(-) diff --git a/sdk/core/azure-core/CHANGELOG.md b/sdk/core/azure-core/CHANGELOG.md index f77fe1020e82..667bb12b8903 100644 --- a/sdk/core/azure-core/CHANGELOG.md +++ b/sdk/core/azure-core/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +## 1.42.0 (Unreleased) + +### Features Added + +- Added `AzureClouds.AZURE_BLEUCLOUD` for the Bleu national partner cloud (France). This cloud can now be selected via the `AZURE_SDK_CLOUD_CONF` environment variable or `settings.current.azure_cloud`. + ## 1.41.0 (2026-05-07) ### Features Added diff --git a/sdk/core/azure-core/azure/core/_azure_clouds.py b/sdk/core/azure-core/azure/core/_azure_clouds.py index 90b0c7f9984f..7da11528f898 100644 --- a/sdk/core/azure-core/azure/core/_azure_clouds.py +++ b/sdk/core/azure-core/azure/core/_azure_clouds.py @@ -39,3 +39,6 @@ class AzureClouds(str, Enum): AZURE_US_GOVERNMENT = "AZURE_US_GOVERNMENT" """Azure US government cloud""" + + AZURE_BLEUCLOUD = "AZURE_BLEUCLOUD" + """Bleu national partner cloud (France)""" diff --git a/sdk/core/azure-core/azure/core/_version.py b/sdk/core/azure-core/azure/core/_version.py index b61909f350dd..7e497df87224 100644 --- a/sdk/core/azure-core/azure/core/_version.py +++ b/sdk/core/azure-core/azure/core/_version.py @@ -9,4 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "1.41.0" +VERSION = "1.42.0" diff --git a/sdk/core/azure-core/tests/test_settings.py b/sdk/core/azure-core/tests/test_settings.py index e3b187ee5897..2bbeaf9d6848 100644 --- a/sdk/core/azure-core/tests/test_settings.py +++ b/sdk/core/azure-core/tests/test_settings.py @@ -179,6 +179,11 @@ def test_convert_azure_cloud(self): with pytest.raises(ValueError): m.convert_azure_cloud(10) + assert m.convert_azure_cloud("AZURE_PUBLIC_CLOUD") == AzureClouds.AZURE_PUBLIC_CLOUD + assert m.convert_azure_cloud("AZURE_CHINA_CLOUD") == AzureClouds.AZURE_CHINA_CLOUD + assert m.convert_azure_cloud("AZURE_US_GOVERNMENT") == AzureClouds.AZURE_US_GOVERNMENT + assert m.convert_azure_cloud("AZURE_BLEUCLOUD") == AzureClouds.AZURE_BLEUCLOUD + def test_convert_tracing_impl_bad(self): m.convert_tracing_impl.cache_clear() # Invalid values now fall back to None with a warning logged. diff --git a/sdk/core/azure-mgmt-core/CHANGELOG.md b/sdk/core/azure-mgmt-core/CHANGELOG.md index c748a72f89c9..f551fe3a8586 100644 --- a/sdk/core/azure-mgmt-core/CHANGELOG.md +++ b/sdk/core/azure-mgmt-core/CHANGELOG.md @@ -1,6 +1,10 @@ # Release History -## 1.6.1 (Unreleased) +## 1.7.0 (Unreleased) + +### Features Added + +- `get_arm_endpoints` now supports `AzureClouds.AZURE_BLEUCLOUD`, returning the Azure Resource Manager endpoint and credential scopes for the Bleu national partner cloud (France). ### Bugs Fixed diff --git a/sdk/core/azure-mgmt-core/azure/mgmt/core/_version.py b/sdk/core/azure-mgmt-core/azure/mgmt/core/_version.py index 63b396f7f785..3e95c740099b 100644 --- a/sdk/core/azure-mgmt-core/azure/mgmt/core/_version.py +++ b/sdk/core/azure-mgmt-core/azure/mgmt/core/_version.py @@ -9,4 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "1.6.1" +VERSION = "1.7.0" diff --git a/sdk/core/azure-mgmt-core/azure/mgmt/core/tools.py b/sdk/core/azure-mgmt-core/azure/mgmt/core/tools.py index aee742fec070..c320047984c1 100644 --- a/sdk/core/azure-mgmt-core/azure/mgmt/core/tools.py +++ b/sdk/core/azure-mgmt-core/azure/mgmt/core/tools.py @@ -28,7 +28,6 @@ import logging from azure.core import AzureClouds - _LOGGER = logging.getLogger(__name__) _ARMID_RE = re.compile( "(?i)/subscriptions/(?P[^/]+)(/resourceGroups/(?P[^/]+))?" @@ -95,7 +94,7 @@ def parse_resource_id(rid: str) -> Mapping[str, Union[str, int]]: def _populate_alternate_kwargs( - kwargs: MutableMapping[str, Union[None, str, int]] + kwargs: MutableMapping[str, Union[None, str, int]], ) -> Mapping[str, Union[None, str, int]]: """Translates the parsed arguments into a format used by generic ARM commands such as the resource and lock commands. @@ -244,4 +243,9 @@ def get_arm_endpoints(cloud_setting: AzureClouds) -> Dict[str, Any]: "resource_manager": "https://management.azure.com/", "credential_scopes": ["https://management.azure.com/.default"], } + if cloud_setting == AzureClouds.AZURE_BLEUCLOUD: + return { + "resource_manager": "https://management.sovcloud-api.fr/", + "credential_scopes": ["https://management.sovcloud-api.fr/.default"], + } raise ValueError("Unknown cloud setting: {}".format(cloud_setting)) diff --git a/sdk/core/azure-mgmt-core/setup.py b/sdk/core/azure-mgmt-core/setup.py index 2d738fb2299a..80ede52d5552 100644 --- a/sdk/core/azure-mgmt-core/setup.py +++ b/sdk/core/azure-mgmt-core/setup.py @@ -69,7 +69,7 @@ "pytyped": ["py.typed"], }, install_requires=[ - "azure-core>=1.38.0", + "azure-core>=1.42.0", ], python_requires=">=3.9", ) diff --git a/sdk/core/azure-mgmt-core/tests/test_arm_endpoints.py b/sdk/core/azure-mgmt-core/tests/test_arm_endpoints.py index 630b6d1be5bc..1ac77ca1d7d6 100644 --- a/sdk/core/azure-mgmt-core/tests/test_arm_endpoints.py +++ b/sdk/core/azure-mgmt-core/tests/test_arm_endpoints.py @@ -42,3 +42,8 @@ def test_arm_endpoints(): cloud_meta = get_arm_endpoints(cloud_setting) assert cloud_meta["resource_manager"] == "https://management.chinacloudapi.cn/" assert cloud_meta["credential_scopes"] == ["https://management.chinacloudapi.cn/.default"] + + cloud_setting = AzureClouds.AZURE_BLEUCLOUD + cloud_meta = get_arm_endpoints(cloud_setting) + assert cloud_meta["resource_manager"] == "https://management.sovcloud-api.fr/" + assert cloud_meta["credential_scopes"] == ["https://management.sovcloud-api.fr/.default"] From 07adacf410e0c15f5e036ec2f33d418784e284d6 Mon Sep 17 00:00:00 2001 From: devi0042JD <247394410+devi0042JD@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:39:02 +0000 Subject: [PATCH 2/2] Add BLEUCLOUD and sovcloud to cspell overrides for azure-core --- .vscode/cspell.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.vscode/cspell.json b/.vscode/cspell.json index 42501f5938ff..0bea7c6a21b4 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -656,6 +656,13 @@ "acrs" ] }, + { + "filename": "sdk/core/azure-core/**", + "words": [ + "BLEUCLOUD", + "sovcloud" + ] + }, { "filename": "sdk/identity/test-resources*", "words": [