Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -656,6 +656,13 @@
"acrs"
]
},
{
"filename": "sdk/core/azure-core/**",
"words": [
"BLEUCLOUD",
"sovcloud"
]
},
{
"filename": "sdk/identity/test-resources*",
"words": [
Expand Down
6 changes: 6 additions & 0 deletions sdk/core/azure-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 3 additions & 0 deletions sdk/core/azure-core/azure/core/_azure_clouds.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)"""
2 changes: 1 addition & 1 deletion sdk/core/azure-core/azure/core/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
# regenerated.
# --------------------------------------------------------------------------

VERSION = "1.41.0"
VERSION = "1.42.0"
5 changes: 5 additions & 0 deletions sdk/core/azure-core/tests/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
6 changes: 5 additions & 1 deletion sdk/core/azure-mgmt-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion sdk/core/azure-mgmt-core/azure/mgmt/core/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
# regenerated.
# --------------------------------------------------------------------------

VERSION = "1.6.1"
VERSION = "1.7.0"
8 changes: 6 additions & 2 deletions sdk/core/azure-mgmt-core/azure/mgmt/core/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import logging
from azure.core import AzureClouds


_LOGGER = logging.getLogger(__name__)
_ARMID_RE = re.compile(
"(?i)/subscriptions/(?P<subscription>[^/]+)(/resourceGroups/(?P<resource_group>[^/]+))?"
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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))
2 changes: 1 addition & 1 deletion sdk/core/azure-mgmt-core/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
"pytyped": ["py.typed"],
},
install_requires=[
"azure-core>=1.38.0",
"azure-core>=1.42.0",
],
python_requires=">=3.9",
)
5 changes: 5 additions & 0 deletions sdk/core/azure-mgmt-core/tests/test_arm_endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Loading