diff --git a/sdk/storage/azure-storage-blob/assets.json b/sdk/storage/azure-storage-blob/assets.json
index 0c10363dc1d..dec2eacba9a 100644
--- a/sdk/storage/azure-storage-blob/assets.json
+++ b/sdk/storage/azure-storage-blob/assets.json
@@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "python",
"TagPrefix": "python/storage/azure-storage-blob",
- "Tag": "python/storage/azure-storage-blob_2bfcc41daa"
+ "Tag": "python/storage/azure-storage-blob_18c98ed997"
}
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_container_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_container_client.py
index d8bd0fc2b0c..1928051cb0f 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_container_client.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_container_client.py
@@ -815,6 +815,9 @@ def list_blobs(
:keyword int results_per_page:
Controls the maximum number of Blobs that will be included in each page of results if using
`ItemPaged.by_page()`.
+ :keyword str start_from:
+ Specifies the full path (inclusive) to list paths from.
+ Only one entity level is supported.
:keyword int timeout:
Sets the server-side timeout for the operation in seconds. For more details see
https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations.
@@ -867,6 +870,9 @@ def list_blob_names(self, **kwargs: Any) -> ItemPaged[str]:
:keyword int results_per_page:
Controls the maximum number of Blobs that will be included in each page of results if using
`ItemPaged.by_page()`.
+ :keyword str start_from:
+ Specifies the full path (inclusive) to list paths from.
+ Only one entity level is supported.
:keyword int timeout:
Sets the server-side timeout for the operation in seconds. For more details see
https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations.
@@ -925,6 +931,8 @@ def walk_blobs(
element in the response body that acts as a placeholder for all blobs whose
names begin with the same substring up to the appearance of the delimiter
character. The delimiter may be a single character or a string.
+ :keyword str start_from:
+ Specifies the full path (inclusive) to list paths from.
:keyword int timeout:
Sets the server-side timeout for the operation in seconds. For more details see
https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations.
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_azure_blob_storage.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_azure_blob_storage.py
index 6f40a747c1d..9ab21c8abf7 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_azure_blob_storage.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_azure_blob_storage.py
@@ -48,7 +48,7 @@ class AzureBlobStorage: # pylint: disable=client-accepts-api-version-keyword
:param base_url: Service URL. Required. Default value is "".
:type base_url: str
:keyword version: Specifies the version of the operation to use for this request. Default value
- is "2025-11-05". Note that overriding this default value may result in unsupported behavior.
+ is "2026-02-06". Note that overriding this default value may result in unsupported behavior.
:paramtype version: str
"""
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_configuration.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_configuration.py
index 5186bab68fa..027308796bf 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_configuration.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_configuration.py
@@ -23,12 +23,12 @@ class AzureBlobStorageConfiguration: # pylint: disable=too-many-instance-attrib
desired operation. Required.
:type url: str
:keyword version: Specifies the version of the operation to use for this request. Default value
- is "2025-11-05". Note that overriding this default value may result in unsupported behavior.
+ is "2026-02-06". Note that overriding this default value may result in unsupported behavior.
:paramtype version: str
"""
def __init__(self, url: str, **kwargs: Any) -> None:
- version: Literal["2025-11-05"] = kwargs.pop("version", "2025-11-05")
+ version: Literal["2026-02-06"] = kwargs.pop("version", "2026-02-06")
if url is None:
raise ValueError("Parameter 'url' must not be None.")
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_azure_blob_storage.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_azure_blob_storage.py
index ae83be25133..d01344b66a3 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_azure_blob_storage.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_azure_blob_storage.py
@@ -48,7 +48,7 @@ class AzureBlobStorage: # pylint: disable=client-accepts-api-version-keyword
:param base_url: Service URL. Required. Default value is "".
:type base_url: str
:keyword version: Specifies the version of the operation to use for this request. Default value
- is "2025-11-05". Note that overriding this default value may result in unsupported behavior.
+ is "2026-02-06". Note that overriding this default value may result in unsupported behavior.
:paramtype version: str
"""
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_configuration.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_configuration.py
index 532326f7c81..59296d0c0fd 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_configuration.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/_configuration.py
@@ -23,12 +23,12 @@ class AzureBlobStorageConfiguration: # pylint: disable=too-many-instance-attrib
desired operation. Required.
:type url: str
:keyword version: Specifies the version of the operation to use for this request. Default value
- is "2025-11-05". Note that overriding this default value may result in unsupported behavior.
+ is "2026-02-06". Note that overriding this default value may result in unsupported behavior.
:paramtype version: str
"""
def __init__(self, url: str, **kwargs: Any) -> None:
- version: Literal["2025-11-05"] = kwargs.pop("version", "2025-11-05")
+ version: Literal["2026-02-06"] = kwargs.pop("version", "2026-02-06")
if url is None:
raise ValueError("Parameter 'url' must not be None.")
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_container_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_container_operations.py
index d3155ece217..054ef756a9d 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_container_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_container_operations.py
@@ -1513,6 +1513,7 @@ async def list_blob_flat_segment(
marker: Optional[str] = None,
maxresults: Optional[int] = None,
include: Optional[List[Union[str, _models.ListBlobsIncludeItem]]] = None,
+ start_from: Optional[str] = None,
timeout: Optional[int] = None,
request_id_parameter: Optional[str] = None,
**kwargs: Any
@@ -1539,6 +1540,10 @@ async def list_blob_flat_segment(
:param include: Include this parameter to specify one or more datasets to include in the
response. Default value is None.
:type include: list[str or ~azure.storage.blob.models.ListBlobsIncludeItem]
+ :param start_from: Specifies the relative path to list paths from. For non-recursive list, only
+ one entity level is supported; For recursive list, multiple entity levels are supported.
+ (Inclusive). Default value is None.
+ :type start_from: str
:param timeout: The timeout parameter is expressed in seconds. For more information, see
:code:`Setting
@@ -1573,6 +1578,7 @@ async def list_blob_flat_segment(
marker=marker,
maxresults=maxresults,
include=include,
+ start_from=start_from,
timeout=timeout,
request_id_parameter=request_id_parameter,
restype=restype,
@@ -1619,6 +1625,7 @@ async def list_blob_hierarchy_segment(
marker: Optional[str] = None,
maxresults: Optional[int] = None,
include: Optional[List[Union[str, _models.ListBlobsIncludeItem]]] = None,
+ start_from: Optional[str] = None,
timeout: Optional[int] = None,
request_id_parameter: Optional[str] = None,
**kwargs: Any
@@ -1650,6 +1657,10 @@ async def list_blob_hierarchy_segment(
:param include: Include this parameter to specify one or more datasets to include in the
response. Default value is None.
:type include: list[str or ~azure.storage.blob.models.ListBlobsIncludeItem]
+ :param start_from: Specifies the relative path to list paths from. For non-recursive list, only
+ one entity level is supported; For recursive list, multiple entity levels are supported.
+ (Inclusive). Default value is None.
+ :type start_from: str
:param timeout: The timeout parameter is expressed in seconds. For more information, see
:code:`Setting
@@ -1685,6 +1696,7 @@ async def list_blob_hierarchy_segment(
marker=marker,
maxresults=maxresults,
include=include,
+ start_from=start_from,
timeout=timeout,
request_id_parameter=request_id_parameter,
restype=restype,
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py
index f91ad6f2138..6ef6d09c7b9 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py
@@ -68,7 +68,7 @@ def build_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
blob_type: Literal["AppendBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "AppendBlob"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -178,7 +178,7 @@ def build_append_block_request(
comp: Literal["appendblock"] = kwargs.pop("comp", _params.pop("comp", "appendblock"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -281,7 +281,7 @@ def build_append_block_from_url_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["appendblock"] = kwargs.pop("comp", _params.pop("comp", "appendblock"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -381,7 +381,7 @@ def build_seal_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["seal"] = kwargs.pop("comp", _params.pop("comp", "seal"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py
index bf0ede5485c..e38126dfeb6 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py
@@ -62,7 +62,7 @@ def build_download_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -143,7 +143,7 @@ def build_get_properties_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -211,7 +211,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -262,7 +262,7 @@ def build_undelete_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["undelete"] = kwargs.pop("comp", _params.pop("comp", "undelete"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -300,7 +300,7 @@ def build_set_expiry_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["expiry"] = kwargs.pop("comp", _params.pop("comp", "expiry"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -351,7 +351,7 @@ def build_set_http_headers_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -422,7 +422,7 @@ def build_set_immutability_policy_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["immutabilityPolicies"] = kwargs.pop("comp", _params.pop("comp", "immutabilityPolicies"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -474,7 +474,7 @@ def build_delete_immutability_policy_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["immutabilityPolicies"] = kwargs.pop("comp", _params.pop("comp", "immutabilityPolicies"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -517,7 +517,7 @@ def build_set_legal_hold_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["legalhold"] = kwargs.pop("comp", _params.pop("comp", "legalhold"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -569,7 +569,7 @@ def build_set_metadata_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["metadata"] = kwargs.pop("comp", _params.pop("comp", "metadata"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -637,7 +637,7 @@ def build_acquire_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
action: Literal["acquire"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "acquire"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -695,7 +695,7 @@ def build_release_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
action: Literal["release"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "release"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -750,7 +750,7 @@ def build_renew_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
action: Literal["renew"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "renew"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -806,7 +806,7 @@ def build_change_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
action: Literal["change"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "change"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -862,7 +862,7 @@ def build_break_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
action: Literal["break"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "break"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -922,7 +922,7 @@ def build_create_snapshot_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["snapshot"] = kwargs.pop("comp", _params.pop("comp", "snapshot"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1001,7 +1001,7 @@ def build_start_copy_from_url_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1105,7 +1105,7 @@ def build_copy_from_url_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
x_ms_requires_sync: Literal["true"] = kwargs.pop("x_ms_requires_sync", _headers.pop("x-ms-requires-sync", "true"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1199,7 +1199,7 @@ def build_abort_copy_from_url_request(
copy_action_abort_constant: Literal["abort"] = kwargs.pop(
"copy_action_abort_constant", _headers.pop("x-ms-copy-action", "abort")
)
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1245,7 +1245,7 @@ def build_set_tier_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["tier"] = kwargs.pop("comp", _params.pop("comp", "tier"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1289,7 +1289,7 @@ def build_get_account_info_request(
restype: Literal["account"] = kwargs.pop("restype", _params.pop("restype", "account"))
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1338,7 +1338,7 @@ def build_query_request(
comp: Literal["query"] = kwargs.pop("comp", _params.pop("comp", "query"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1402,7 +1402,7 @@ def build_get_tags_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["tags"] = kwargs.pop("comp", _params.pop("comp", "tags"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -1453,7 +1453,7 @@ def build_set_tags_request(
comp: Literal["tags"] = kwargs.pop("comp", _params.pop("comp", "tags"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py
index 77321259628..1240c714e6f 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py
@@ -75,7 +75,7 @@ def build_upload_request(
blob_type: Literal["BlockBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "BlockBlob"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -216,7 +216,7 @@ def build_put_blob_from_url_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
blob_type: Literal["BlockBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "BlockBlob"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -345,7 +345,7 @@ def build_stage_block_request(
comp: Literal["block"] = kwargs.pop("comp", _params.pop("comp", "block"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -428,7 +428,7 @@ def build_stage_block_from_url_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["block"] = kwargs.pop("comp", _params.pop("comp", "block"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -531,7 +531,7 @@ def build_commit_block_list_request(
comp: Literal["blocklist"] = kwargs.pop("comp", _params.pop("comp", "blocklist"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -637,7 +637,7 @@ def build_get_block_list_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["blocklist"] = kwargs.pop("comp", _params.pop("comp", "blocklist"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_container_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_container_operations.py
index c23ae73eef4..bef5d9a9caa 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_container_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_container_operations.py
@@ -52,7 +52,7 @@ def build_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -101,7 +101,7 @@ def build_get_properties_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -142,7 +142,7 @@ def build_delete_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -188,7 +188,7 @@ def build_set_metadata_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["metadata"] = kwargs.pop("comp", _params.pop("comp", "metadata"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -233,7 +233,7 @@ def build_get_access_policy_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["acl"] = kwargs.pop("comp", _params.pop("comp", "acl"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -279,7 +279,7 @@ def build_set_access_policy_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["acl"] = kwargs.pop("comp", _params.pop("comp", "acl"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -329,7 +329,7 @@ def build_restore_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["undelete"] = kwargs.pop("comp", _params.pop("comp", "undelete"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -377,7 +377,7 @@ def build_rename_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["rename"] = kwargs.pop("comp", _params.pop("comp", "rename"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -421,7 +421,7 @@ def build_submit_batch_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["batch"] = kwargs.pop("comp", _params.pop("comp", "batch"))
multipart_content_type: Optional[str] = kwargs.pop("multipart_content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -466,7 +466,7 @@ def build_filter_blobs_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["blobs"] = kwargs.pop("comp", _params.pop("comp", "blobs"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -517,7 +517,7 @@ def build_acquire_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
action: Literal["acquire"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "acquire"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -568,7 +568,7 @@ def build_release_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
action: Literal["release"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "release"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -616,7 +616,7 @@ def build_renew_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
action: Literal["renew"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "renew"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -664,7 +664,7 @@ def build_break_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
action: Literal["break"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "break"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -714,7 +714,7 @@ def build_change_lease_request(
comp: Literal["lease"] = kwargs.pop("comp", _params.pop("comp", "lease"))
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
action: Literal["change"] = kwargs.pop("action", _headers.pop("x-ms-lease-action", "change"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -754,6 +754,7 @@ def build_list_blob_flat_segment_request(
marker: Optional[str] = None,
maxresults: Optional[int] = None,
include: Optional[List[Union[str, _models.ListBlobsIncludeItem]]] = None,
+ start_from: Optional[str] = None,
timeout: Optional[int] = None,
request_id_parameter: Optional[str] = None,
**kwargs: Any
@@ -763,7 +764,7 @@ def build_list_blob_flat_segment_request(
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["list"] = kwargs.pop("comp", _params.pop("comp", "list"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -785,6 +786,8 @@ def build_list_blob_flat_segment_request(
_params["maxresults"] = _SERIALIZER.query("maxresults", maxresults, "int", minimum=1)
if include is not None:
_params["include"] = _SERIALIZER.query("include", include, "[str]", div=",")
+ if start_from is not None:
+ _params["startFrom"] = _SERIALIZER.query("start_from", start_from, "str")
if timeout is not None:
_params["timeout"] = _SERIALIZER.query("timeout", timeout, "int", minimum=0)
@@ -805,6 +808,7 @@ def build_list_blob_hierarchy_segment_request( # pylint: disable=name-too-long
marker: Optional[str] = None,
maxresults: Optional[int] = None,
include: Optional[List[Union[str, _models.ListBlobsIncludeItem]]] = None,
+ start_from: Optional[str] = None,
timeout: Optional[int] = None,
request_id_parameter: Optional[str] = None,
**kwargs: Any
@@ -814,7 +818,7 @@ def build_list_blob_hierarchy_segment_request( # pylint: disable=name-too-long
restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container"))
comp: Literal["list"] = kwargs.pop("comp", _params.pop("comp", "list"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -837,6 +841,8 @@ def build_list_blob_hierarchy_segment_request( # pylint: disable=name-too-long
_params["maxresults"] = _SERIALIZER.query("maxresults", maxresults, "int", minimum=1)
if include is not None:
_params["include"] = _SERIALIZER.query("include", include, "[str]", div=",")
+ if start_from is not None:
+ _params["startFrom"] = _SERIALIZER.query("start_from", start_from, "str")
if timeout is not None:
_params["timeout"] = _SERIALIZER.query("timeout", timeout, "int", minimum=0)
@@ -857,7 +863,7 @@ def build_get_account_info_request(
restype: Literal["account"] = kwargs.pop("restype", _params.pop("restype", "account"))
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -2343,6 +2349,7 @@ def list_blob_flat_segment(
marker: Optional[str] = None,
maxresults: Optional[int] = None,
include: Optional[List[Union[str, _models.ListBlobsIncludeItem]]] = None,
+ start_from: Optional[str] = None,
timeout: Optional[int] = None,
request_id_parameter: Optional[str] = None,
**kwargs: Any
@@ -2369,6 +2376,10 @@ def list_blob_flat_segment(
:param include: Include this parameter to specify one or more datasets to include in the
response. Default value is None.
:type include: list[str or ~azure.storage.blob.models.ListBlobsIncludeItem]
+ :param start_from: Specifies the relative path to list paths from. For non-recursive list, only
+ one entity level is supported; For recursive list, multiple entity levels are supported.
+ (Inclusive). Default value is None.
+ :type start_from: str
:param timeout: The timeout parameter is expressed in seconds. For more information, see
:code:`Setting
@@ -2403,6 +2414,7 @@ def list_blob_flat_segment(
marker=marker,
maxresults=maxresults,
include=include,
+ start_from=start_from,
timeout=timeout,
request_id_parameter=request_id_parameter,
restype=restype,
@@ -2449,6 +2461,7 @@ def list_blob_hierarchy_segment(
marker: Optional[str] = None,
maxresults: Optional[int] = None,
include: Optional[List[Union[str, _models.ListBlobsIncludeItem]]] = None,
+ start_from: Optional[str] = None,
timeout: Optional[int] = None,
request_id_parameter: Optional[str] = None,
**kwargs: Any
@@ -2480,6 +2493,10 @@ def list_blob_hierarchy_segment(
:param include: Include this parameter to specify one or more datasets to include in the
response. Default value is None.
:type include: list[str or ~azure.storage.blob.models.ListBlobsIncludeItem]
+ :param start_from: Specifies the relative path to list paths from. For non-recursive list, only
+ one entity level is supported; For recursive list, multiple entity levels are supported.
+ (Inclusive). Default value is None.
+ :type start_from: str
:param timeout: The timeout parameter is expressed in seconds. For more information, see
:code:`Setting
@@ -2515,6 +2532,7 @@ def list_blob_hierarchy_segment(
marker=marker,
maxresults=maxresults,
include=include,
+ start_from=start_from,
timeout=timeout,
request_id_parameter=request_id_parameter,
restype=restype,
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py
index af028738d5d..06234aa5a9f 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py
@@ -71,7 +71,7 @@ def build_create_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
blob_type: Literal["PageBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "PageBlob"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -189,7 +189,7 @@ def build_upload_pages_request(
comp: Literal["page"] = kwargs.pop("comp", _params.pop("comp", "page"))
page_write: Literal["update"] = kwargs.pop("page_write", _headers.pop("x-ms-page-write", "update"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -295,7 +295,7 @@ def build_clear_pages_request(
comp: Literal["page"] = kwargs.pop("comp", _params.pop("comp", "page"))
page_write: Literal["clear"] = kwargs.pop("page_write", _headers.pop("x-ms-page-write", "clear"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -395,7 +395,7 @@ def build_upload_pages_from_url_request(
comp: Literal["page"] = kwargs.pop("comp", _params.pop("comp", "page"))
page_write: Literal["update"] = kwargs.pop("page_write", _headers.pop("x-ms-page-write", "update"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -504,7 +504,7 @@ def build_get_page_ranges_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["pagelist"] = kwargs.pop("comp", _params.pop("comp", "pagelist"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -572,7 +572,7 @@ def build_get_page_ranges_diff_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["pagelist"] = kwargs.pop("comp", _params.pop("comp", "pagelist"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -643,7 +643,7 @@ def build_resize_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -710,7 +710,7 @@ def build_update_sequence_number_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -769,7 +769,7 @@ def build_copy_incremental_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["incrementalcopy"] = kwargs.pop("comp", _params.pop("comp", "incrementalcopy"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_service_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_service_operations.py
index 8fadef350aa..3d3d6b14b10 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_service_operations.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_service_operations.py
@@ -45,7 +45,7 @@ def build_set_properties_request(
restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service"))
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -81,7 +81,7 @@ def build_get_properties_request(
restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service"))
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -115,7 +115,7 @@ def build_get_statistics_request(
restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service"))
comp: Literal["stats"] = kwargs.pop("comp", _params.pop("comp", "stats"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -156,7 +156,7 @@ def build_list_containers_segment_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["list"] = kwargs.pop("comp", _params.pop("comp", "list"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -198,7 +198,7 @@ def build_get_user_delegation_key_request(
restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service"))
comp: Literal["userdelegationkey"] = kwargs.pop("comp", _params.pop("comp", "userdelegationkey"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -234,7 +234,7 @@ def build_get_account_info_request(
restype: Literal["account"] = kwargs.pop("restype", _params.pop("restype", "account"))
comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -274,7 +274,7 @@ def build_submit_batch_request(
comp: Literal["batch"] = kwargs.pop("comp", _params.pop("comp", "batch"))
multipart_content_type: Optional[str] = kwargs.pop("multipart_content_type", _headers.pop("Content-Type", None))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
@@ -317,7 +317,7 @@ def build_filter_blobs_request(
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
comp: Literal["blobs"] = kwargs.pop("comp", _params.pop("comp", "blobs"))
- version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
+ version: Literal["2026-02-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-02-06"))
accept = _headers.pop("Accept", "application/xml")
# Construct URL
diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py
index f4b1b937176..ae6a94f8e70 100644
--- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py
+++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_container_client_async.py
@@ -801,6 +801,9 @@ def list_blobs(
:keyword int results_per_page:
Controls the maximum number of Blobs that will be included in each page of results if using
`AsyncItemPaged.by_page()`.
+ :keyword str start_from:
+ Specifies the full path (inclusive) to list paths from.
+ Only one entity level is supported.
:keyword int timeout:
Sets the server-side timeout for the operation in seconds. For more details see
https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations.
@@ -857,6 +860,9 @@ def list_blob_names(self, **kwargs: Any) -> AsyncItemPaged[str]:
:keyword int results_per_page:
Controls the maximum number of Blobs that will be included in each page of results if using
`AsyncItemPaged.by_page()`.
+ :keyword str start_from:
+ Specifies the full path (inclusive) to list paths from.
+ Only one entity level is supported.
:keyword int timeout:
Sets the server-side timeout for the operation in seconds. For more details see
https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations.
@@ -915,6 +921,8 @@ def walk_blobs(
element in the response body that acts as a placeholder for all blobs whose
names begin with the same substring up to the appearance of the delimiter
character. The delimiter may be a single character or a string.
+ :keyword str start_from:
+ Specifies the full path (inclusive) to list paths from.
:keyword int timeout:
Sets the server-side timeout for the operation in seconds. For more details see
https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations.
diff --git a/sdk/storage/azure-storage-blob/tests/test_container.py b/sdk/storage/azure-storage-blob/tests/test_container.py
index 764f7a3ef43..c2c3dba5adb 100644
--- a/sdk/storage/azure-storage-blob/tests/test_container.py
+++ b/sdk/storage/azure-storage-blob/tests/test_container.py
@@ -2751,3 +2751,58 @@ def test_get_account_information_oauth(self, **kwargs):
# Act / Assert
cc_info = container.get_account_information()
assert cc_info is not None
+
+ @BlobPreparer()
+ @recorded_by_proxy
+ def test_list_blobs_start_end(self, **kwargs):
+ storage_account_name = kwargs.pop("storage_account_name")
+ storage_account_key = kwargs.pop("storage_account_key")
+
+ bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), storage_account_key)
+ container = self._create_container(bsc)
+ data = b'hello world'
+ container.get_blob_client('blob1').upload_blob(data)
+ container.get_blob_client('a/blob2').upload_blob(data)
+ container.get_blob_client('a/blob3').upload_blob(data)
+ container.get_blob_client('a/blob4').upload_blob(data)
+
+ # Act
+ blobs = list(container.list_blobs(name_starts_with="a/", start_from="a/blob2"))
+
+ # Assert
+ assert blobs is not None
+ assert len(blobs) == 3
+ assert blobs[0].name == "a/blob2"
+ assert blobs[1].name == "a/blob3"
+ assert blobs[2].name == "a/blob4"
+
+ @BlobPreparer()
+ @recorded_by_proxy
+ def test_walk_blobs_start_end(self, **kwargs):
+ storage_account_name = kwargs.pop("storage_account_name")
+ storage_account_key = kwargs.pop("storage_account_key")
+
+ bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), storage_account_key)
+ container = self._create_container(bsc)
+ data = b'hello world'
+ container.get_blob_client('a/blob1').upload_blob(data)
+ container.get_blob_client('a/b/blob2').upload_blob(data)
+ container.get_blob_client('a/b/blob3').upload_blob(data)
+ container.get_blob_client('a/b/blob4').upload_blob(data)
+ container.get_blob_client('b/blob5').upload_blob(data)
+ container.get_blob_client('blob6').upload_blob(data)
+
+ blobs = []
+ def recursive_walk(prefix):
+ for b in prefix:
+ if b.get('prefix'):
+ recursive_walk(b)
+ else:
+ blobs.append(b.name)
+
+ # Act
+ recursive_walk(container.walk_blobs(name_starts_with="a/", start_from="a/b/", delimiter="/"))
+
+ # Assert
+ assert blobs is not None
+ assert blobs == ["a/b/blob2", "a/b/blob3", "a/b/blob4", "a/blob1"]
diff --git a/sdk/storage/azure-storage-blob/tests/test_container_async.py b/sdk/storage/azure-storage-blob/tests/test_container_async.py
index 608811f9ec1..51696456512 100644
--- a/sdk/storage/azure-storage-blob/tests/test_container_async.py
+++ b/sdk/storage/azure-storage-blob/tests/test_container_async.py
@@ -73,7 +73,7 @@ async def test_create_container(self, **kwargs):
storage_account_name = kwargs.pop("storage_account_name")
storage_account_key = kwargs.pop("storage_account_key")
- bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), storage_account_key)
+ bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), storage_account_key, retry_total=0)
container_name = self._get_container_reference()
# Act
@@ -2621,3 +2621,57 @@ async def test_get_account_information_oauth(self, **kwargs):
# Act / Assert
cc_info = await container.get_account_information()
assert cc_info is not None
+
+ @BlobPreparer()
+ @recorded_by_proxy_async
+ async def test_list_blobs_start_end(self, **kwargs):
+ storage_account_name = kwargs.pop("storage_account_name")
+ storage_account_key = kwargs.pop("storage_account_key")
+
+ bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), storage_account_key)
+ container = await self._create_container(bsc)
+ data = b'hello world'
+ await (container.get_blob_client('blob1')).upload_blob(data)
+ await (container.get_blob_client('a/blob2')).upload_blob(data)
+ await (container.get_blob_client('a/blob3')).upload_blob(data)
+ await (container.get_blob_client('a/blob4')).upload_blob(data)
+
+ # Act
+ blobs = []
+ async for b in container.list_blobs(name_starts_with="a/", start_from="a/blob2"):
+ blobs.append(b.name)
+
+ # Assert
+ assert blobs is not None
+ assert blobs, ["a/blob2", "a/blob3", "a/blob4"]
+
+ @BlobPreparer()
+ @recorded_by_proxy_async
+ async def test_walk_blobs_start_end(self, **kwargs):
+ storage_account_name = kwargs.pop("storage_account_name")
+ storage_account_key = kwargs.pop("storage_account_key")
+
+ bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), storage_account_key)
+ container = await self._create_container(bsc)
+ data = b'hello world'
+ await (container.get_blob_client('a/blob1')).upload_blob(data)
+ await (container.get_blob_client('a/b/blob2')).upload_blob(data)
+ await (container.get_blob_client('a/b/blob3')).upload_blob(data)
+ await (container.get_blob_client('a/b/blob4')).upload_blob(data)
+ await (container.get_blob_client('b/blob5')).upload_blob(data)
+ await (container.get_blob_client('blob6')).upload_blob(data)
+
+ blobs = []
+ async def recursive_walk(prefix):
+ async for b in prefix:
+ if b.get('prefix'):
+ await recursive_walk(b)
+ else:
+ blobs.append(b.name)
+
+ # Act
+ await recursive_walk(container.walk_blobs(name_starts_with="a/", start_from="a/b/", delimiter="/"))
+
+ # Assert
+ assert blobs is not None
+ assert blobs == ["a/b/blob2", "a/b/blob3", "a/b/blob4", "a/blob1"]