From 2fe60bf28e5f296138972ccf46d0ace5045152e2 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 22 Jan 2026 15:47:41 -0500 Subject: [PATCH 01/19] Bumped min azure-core version to 1.37.0 --- sdk/storage/azure-storage-blob/CHANGELOG.md | 3 +++ sdk/storage/azure-storage-blob/setup.py | 4 ++-- sdk/storage/azure-storage-file-datalake/CHANGELOG.md | 3 +++ sdk/storage/azure-storage-file-datalake/setup.py | 4 ++-- sdk/storage/azure-storage-file-share/CHANGELOG.md | 3 +++ sdk/storage/azure-storage-file-share/setup.py | 4 ++-- sdk/storage/azure-storage-queue/CHANGELOG.md | 3 +++ sdk/storage/azure-storage-queue/setup.py | 4 ++-- 8 files changed, 20 insertions(+), 8 deletions(-) diff --git a/sdk/storage/azure-storage-blob/CHANGELOG.md b/sdk/storage/azure-storage-blob/CHANGELOG.md index fb57bb13e2bc..c39c76b02715 100644 --- a/sdk/storage/azure-storage-blob/CHANGELOG.md +++ b/sdk/storage/azure-storage-blob/CHANGELOG.md @@ -9,6 +9,9 @@ This replaces `INCREMENTAL_COPY_OF_EARLIER_VERSION_SNAPSHOT_NOT_ALLOWED` which h - Added support for the keywords `access_tier_if_modified_since` and `access_tier_if_unmodified_since` to conditionally perform `BlobClient.delete_blob` operation. +### Other Changes +- Bumped minimum `azure-core` dependency to 1.37.0. + ## 12.28.0 (2026-01-06) ### Features Added diff --git a/sdk/storage/azure-storage-blob/setup.py b/sdk/storage/azure-storage-blob/setup.py index c25bb083178e..0abb2504e0fb 100644 --- a/sdk/storage/azure-storage-blob/setup.py +++ b/sdk/storage/azure-storage-blob/setup.py @@ -79,14 +79,14 @@ ]), python_requires=">=3.9", install_requires=[ - "azure-core>=1.30.0", + "azure-core>=1.37.0", "cryptography>=2.1.4", "typing-extensions>=4.6.0", "isodate>=0.6.1" ], extras_require={ "aio": [ - "azure-core[aio]>=1.30.0", + "azure-core[aio]>=1.37.0", ], }, ) diff --git a/sdk/storage/azure-storage-file-datalake/CHANGELOG.md b/sdk/storage/azure-storage-file-datalake/CHANGELOG.md index af893d36b08b..472b5f3e4666 100644 --- a/sdk/storage/azure-storage-file-datalake/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-datalake/CHANGELOG.md @@ -5,6 +5,9 @@ ### Features Added - Added support for service version 2026-04-06. +### Other Changes +- Bumped minimum `azure-core` dependency to 1.37.0. + ## 12.23.0 (2026-01-06) ### Features Added diff --git a/sdk/storage/azure-storage-file-datalake/setup.py b/sdk/storage/azure-storage-file-datalake/setup.py index 7642733c85aa..4da70e2ca0ca 100644 --- a/sdk/storage/azure-storage-file-datalake/setup.py +++ b/sdk/storage/azure-storage-file-datalake/setup.py @@ -78,14 +78,14 @@ ]), python_requires=">=3.9", install_requires=[ - "azure-core>=1.30.0", + "azure-core>=1.37.0", "azure-storage-blob>=12.29.0b1", "typing-extensions>=4.6.0", "isodate>=0.6.1" ], extras_require={ "aio": [ - "azure-core[aio]>=1.30.0", + "azure-core[aio]>=1.37.0", ], }, ) diff --git a/sdk/storage/azure-storage-file-share/CHANGELOG.md b/sdk/storage/azure-storage-file-share/CHANGELOG.md index 6947ca870b71..26af2a5549a7 100644 --- a/sdk/storage/azure-storage-file-share/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-share/CHANGELOG.md @@ -6,6 +6,9 @@ - Added support for service version 2026-04-06. - Added support for improved error handling for file share provisioning. +### Other Changes +- Bumped minimum `azure-core` dependency to 1.37.0. + ## 12.24.0 (2026-01-06) ### Features Added diff --git a/sdk/storage/azure-storage-file-share/setup.py b/sdk/storage/azure-storage-file-share/setup.py index c2bd79bb1c36..2e62c6db6a86 100644 --- a/sdk/storage/azure-storage-file-share/setup.py +++ b/sdk/storage/azure-storage-file-share/setup.py @@ -66,14 +66,14 @@ ]), python_requires=">=3.9", install_requires=[ - "azure-core>=1.30.0", + "azure-core>=1.37.0", "cryptography>=2.1.4", "typing-extensions>=4.6.0", "isodate>=0.6.1" ], extras_require={ "aio": [ - "azure-core[aio]>=1.30.0", + "azure-core[aio]>=1.37.0", ], }, ) diff --git a/sdk/storage/azure-storage-queue/CHANGELOG.md b/sdk/storage/azure-storage-queue/CHANGELOG.md index 1623d682b113..2601db4dfc37 100644 --- a/sdk/storage/azure-storage-queue/CHANGELOG.md +++ b/sdk/storage/azure-storage-queue/CHANGELOG.md @@ -5,6 +5,9 @@ ### Features Added - Added support for service version 2026-04-06. +### Other Changes +- Bumped minimum `azure-core` dependency to 1.37.0. + ## 12.15.0 (2026-01-06) ### Features Added diff --git a/sdk/storage/azure-storage-queue/setup.py b/sdk/storage/azure-storage-queue/setup.py index 36bcfbe34afc..ac028b43a7a5 100644 --- a/sdk/storage/azure-storage-queue/setup.py +++ b/sdk/storage/azure-storage-queue/setup.py @@ -69,10 +69,10 @@ ] ), python_requires=">=3.9", - install_requires=["azure-core>=1.30.0", "cryptography>=2.1.4", "typing-extensions>=4.6.0", "isodate>=0.6.1"], + install_requires=["azure-core>=1.37.0", "cryptography>=2.1.4", "typing-extensions>=4.6.0", "isodate>=0.6.1"], extras_require={ "aio": [ - "azure-core[aio]>=1.30.0", + "azure-core[aio]>=1.37.0", ], }, ) From 4cf0ad32fb4952f9dcb923e1774672acf6adf7ff Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 22 Jan 2026 16:22:04 -0500 Subject: [PATCH 02/19] Changelogs for the remaining 101 features --- sdk/storage/azure-storage-blob/CHANGELOG.md | 12 ++++++++++++ sdk/storage/azure-storage-file-datalake/CHANGELOG.md | 10 ++++++++++ sdk/storage/azure-storage-file-share/CHANGELOG.md | 3 +++ sdk/storage/azure-storage-queue/CHANGELOG.md | 3 +++ 4 files changed, 28 insertions(+) diff --git a/sdk/storage/azure-storage-blob/CHANGELOG.md b/sdk/storage/azure-storage-blob/CHANGELOG.md index c39c76b02715..1565f11f257e 100644 --- a/sdk/storage/azure-storage-blob/CHANGELOG.md +++ b/sdk/storage/azure-storage-blob/CHANGELOG.md @@ -8,6 +8,18 @@ This replaces `INCREMENTAL_COPY_OF_EARLIER_VERSION_SNAPSHOT_NOT_ALLOWED` which has been deprecated. - Added support for the keywords `access_tier_if_modified_since` and `access_tier_if_unmodified_since` to conditionally perform `BlobClient.delete_blob` operation. +- Added support for the keyword `source_cpk` for `BlobClient`'s `upload_blob_from_url`, +`stage_block_from_url`, `upload_pages_from_url`, and `append_block_from_url` APIs +to re-encrypt data automatically by the service through a `CustomerProvidedEncryptionKey`. +- Added support for the keyword `user_delegation_tid` to `BlobServiceClient.get_user_delegation_key` API, which +can be used in `generate_blob_sas` and `generate_container_sas` to specify the Tenant ID that is authorized +to use the generated SAS URL. Note that `user_delegation_tid` must be used together with `user_delegation_oid`. +- Added support for the keyword `request_headers` to `generate_blob_sas` and `generate_container_sas`, +which specifies a set of headers and their corresponding values that must be +present in the request header when using the generated SAS. +- Added support for the keyword `request_query_params` to `generate_blob_sas` and `generate_container_sas`, +which specifies a set of query parameters and their corresponding values that must be +present in the request URL when using the generated SAS. ### Other Changes - Bumped minimum `azure-core` dependency to 1.37.0. diff --git a/sdk/storage/azure-storage-file-datalake/CHANGELOG.md b/sdk/storage/azure-storage-file-datalake/CHANGELOG.md index 472b5f3e4666..98ccb6dafbbc 100644 --- a/sdk/storage/azure-storage-file-datalake/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-datalake/CHANGELOG.md @@ -4,6 +4,16 @@ ### Features Added - Added support for service version 2026-04-06. +- Added support for the keyword `user_delegation_tid` to `DataLakeServiceClient.get_user_delegation_key` +API, which can be used in `generate_file_system_sas`, `generate_directory_sas`, and `generate_file_sas` +to specify the Tenant ID that is authorized to use the generated SAS URL. Note that `user_delegation_tid` +must be used together with `user_delegation_oid`. +- Added support for the keyword `request_headers` to `generate_file_system_sas`, `generate_directory_sas`, +and `generate_file_sas` which specifies a set of headers and their corresponding values that +must be present in the request header when using the generated SAS. +- Added support for the keyword `request_query_params` to `generate_file_system_sas`, `generate_directory_sas`, +and `generate_file_sas` which specifies a set of query parameters and their corresponding values that +must be present in the request URL when using the generated SAS. ### Other Changes - Bumped minimum `azure-core` dependency to 1.37.0. diff --git a/sdk/storage/azure-storage-file-share/CHANGELOG.md b/sdk/storage/azure-storage-file-share/CHANGELOG.md index 26af2a5549a7..521db2d33cfb 100644 --- a/sdk/storage/azure-storage-file-share/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-share/CHANGELOG.md @@ -5,6 +5,9 @@ ### Features Added - Added support for service version 2026-04-06. - Added support for improved error handling for file share provisioning. +- Added support for the keyword `user_delegation_tid` to `ShareServiceClient.get_user_delegation_key` API, which +can be used in `generate_share_sas` and `generate_file_sas` to specify the Tenant ID that is authorized +to use the generated SAS URL. Note that `user_delegation_tid` must be used together with `user_delegation_oid`. ### Other Changes - Bumped minimum `azure-core` dependency to 1.37.0. diff --git a/sdk/storage/azure-storage-queue/CHANGELOG.md b/sdk/storage/azure-storage-queue/CHANGELOG.md index 2601db4dfc37..e1cc344d28c1 100644 --- a/sdk/storage/azure-storage-queue/CHANGELOG.md +++ b/sdk/storage/azure-storage-queue/CHANGELOG.md @@ -4,6 +4,9 @@ ### Features Added - Added support for service version 2026-04-06. +- Added support for the keyword `user_delegation_tid` to `QueueServiceClient.get_user_delegation_key` API, which +can be used in `generate_queue_sas` to specify the Tenant ID that is authorized to use the generated SAS URL. +Note that `user_delegation_tid` must be used together with `user_delegation_oid`. ### Other Changes - Bumped minimum `azure-core` dependency to 1.37.0. From 1e4bc55fde3286886e19e9bd8dd34928dfbd20a7 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:21:37 -0500 Subject: [PATCH 03/19] Fixed test failures due to environment loader --- .../azure-storage-blob/tests/test_cpk.py | 20 +++++++++++++++---- .../tests/test_cpk_async.py | 20 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/sdk/storage/azure-storage-blob/tests/test_cpk.py b/sdk/storage/azure-storage-blob/tests/test_cpk.py index ad06bf855129..8752a6293135 100644 --- a/sdk/storage/azure-storage-blob/tests/test_cpk.py +++ b/sdk/storage/azure-storage-blob/tests/test_cpk.py @@ -693,7 +693,10 @@ def test_append_block_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) @@ -738,7 +741,10 @@ def test_upload_blob_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) @@ -782,7 +788,10 @@ def test_stage_block_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) @@ -827,7 +836,10 @@ def test_upload_pages_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) diff --git a/sdk/storage/azure-storage-blob/tests/test_cpk_async.py b/sdk/storage/azure-storage-blob/tests/test_cpk_async.py index 143293b229a1..cdb7eb4bec21 100644 --- a/sdk/storage/azure-storage-blob/tests/test_cpk_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_cpk_async.py @@ -669,7 +669,10 @@ async def test_append_block_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) await self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) @@ -714,7 +717,10 @@ async def test_upload_blob_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) await self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) @@ -758,7 +764,10 @@ async def test_stage_block_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) await self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) @@ -803,7 +812,10 @@ async def test_upload_pages_from_url_with_rekeying(self, **kwargs): storage_account_key = kwargs.pop("storage_account_key") # Arrange - bsc = BlobServiceClient(self.account_url(storage_account_name, "blob"), credential=storage_account_key) + bsc = BlobServiceClient( + self.account_url(storage_account_name, "blob"), + credential=storage_account_key.secret + ) await self._setup(bsc) source_blob_client = bsc.get_blob_client(self.container_name, self.get_resource_name("sourceblob")) From 9dbd143116daed6aa66161d976f32d98c4fafc9e Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:29:38 -0500 Subject: [PATCH 04/19] Pointed swagger link at main --- sdk/storage/azure-storage-blob/swagger/README.md | 2 +- sdk/storage/azure-storage-file-datalake/swagger/README.md | 2 +- sdk/storage/azure-storage-file-share/swagger/README.md | 2 +- sdk/storage/azure-storage-queue/swagger/README.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/storage/azure-storage-blob/swagger/README.md b/sdk/storage/azure-storage-blob/swagger/README.md index dd4fabfcdf42..a01f9a614515 100644 --- a/sdk/storage/azure-storage-blob/swagger/README.md +++ b/sdk/storage/azure-storage-blob/swagger/README.md @@ -16,7 +16,7 @@ autorest --v3 --python ### Settings ``` yaml -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-02-06/blob.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/blob.json output-folder: ../azure/storage/blob/_generated namespace: azure.storage.blob no-namespace-folders: true diff --git a/sdk/storage/azure-storage-file-datalake/swagger/README.md b/sdk/storage/azure-storage-file-datalake/swagger/README.md index 006da7eae4d3..f1ad7710ebfe 100644 --- a/sdk/storage/azure-storage-file-datalake/swagger/README.md +++ b/sdk/storage/azure-storage-file-datalake/swagger/README.md @@ -16,7 +16,7 @@ autorest --v3 --python ### Settings ``` yaml -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Azure.Storage.Files.DataLake/stable/2026-02-06/DataLakeStorage.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Azure.Storage.Files.DataLake/stable/2026-04-06/DataLakeStorage.json output-folder: ../azure/storage/filedatalake/_generated namespace: azure.storage.filedatalake no-namespace-folders: true diff --git a/sdk/storage/azure-storage-file-share/swagger/README.md b/sdk/storage/azure-storage-file-share/swagger/README.md index 7fc4edc102e8..6910c5517eca 100644 --- a/sdk/storage/azure-storage-file-share/swagger/README.md +++ b/sdk/storage/azure-storage-file-share/swagger/README.md @@ -16,7 +16,7 @@ autorest --v3 --python ### Settings ``` yaml -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.FileStorage/stable/2026-02-06/file.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.FileStorage/stable/2026-04-06/file.json output-folder: ../azure/storage/fileshare/_generated namespace: azure.storage.fileshare no-namespace-folders: true diff --git a/sdk/storage/azure-storage-queue/swagger/README.md b/sdk/storage/azure-storage-queue/swagger/README.md index 4ba30cd24a20..ea65326c9c2a 100644 --- a/sdk/storage/azure-storage-queue/swagger/README.md +++ b/sdk/storage/azure-storage-queue/swagger/README.md @@ -19,7 +19,7 @@ autorest --use=C:/work/autorest.python --version=2.0.4280 ### Settings ``` yaml -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.QueueStorage/stable/2026-02-06/queue.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.QueueStorage/stable/2026-04-06/queue.json output-folder: ../azure/storage/queue/_generated namespace: azure.storage.queue no-namespace-folders: true From 89131e5cc87dc8e65cc89426c35ac161b4fb173a Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:32:17 -0500 Subject: [PATCH 05/19] Blob code gen - grouping source_encryption_* into source_cpk_info --- .../azure/apiview-properties.json | 1 + .../blob/_generated/_azure_blob_storage.py | 9 +- .../storage/blob/_generated/_configuration.py | 13 +-- .../blob/_generated/_utils/serialization.py | 17 ++- .../_generated/aio/_azure_blob_storage.py | 9 +- .../blob/_generated/aio/_configuration.py | 13 +-- .../aio/operations/_append_blob_operations.py | 44 ++++---- .../aio/operations/_blob_operations.py | 52 ++++----- .../aio/operations/_block_blob_operations.py | 82 ++++++-------- .../aio/operations/_container_operations.py | 36 +++--- .../aio/operations/_page_blob_operations.py | 54 +++++---- .../aio/operations/_service_operations.py | 16 +-- .../blob/_generated/models/__init__.py | 2 + .../blob/_generated/models/_models_py3.py | 48 ++++++++ .../operations/_append_blob_operations.py | 58 +++++----- .../_generated/operations/_blob_operations.py | 106 +++++++++--------- .../operations/_block_blob_operations.py | 102 ++++++++--------- .../operations/_container_operations.py | 73 ++++++------ .../operations/_page_blob_operations.py | 80 +++++++------ .../operations/_service_operations.py | 49 ++++---- 20 files changed, 447 insertions(+), 417 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/apiview-properties.json b/sdk/storage/azure-storage-blob/azure/apiview-properties.json index e37ee8ebfdd2..64ad80365c09 100644 --- a/sdk/storage/azure-storage-blob/azure/apiview-properties.json +++ b/sdk/storage/azure-storage-blob/azure/apiview-properties.json @@ -47,6 +47,7 @@ "azure.storage.blob.models.RetentionPolicy": null, "azure.storage.blob.models.SequenceNumberAccessConditions": null, "azure.storage.blob.models.SignedIdentifier": null, + "azure.storage.blob.models.SourceCpkInfo": null, "azure.storage.blob.models.SourceModifiedAccessConditions": null, "azure.storage.blob.models.StaticWebsite": null, "azure.storage.blob.models.StorageError": null, 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 ab37bf1439df..482adac5cd92 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 @@ -45,17 +45,16 @@ class AzureBlobStorage: # pylint: disable=client-accepts-api-version-keyword :param url: The URL of the service account, container, or blob that is the target of the desired operation. Required. :type url: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :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 "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str """ def __init__( # pylint: disable=missing-client-constructor-parameter-credential - self, url: str, base_url: str = "", **kwargs: Any + self, url: str, version: str, base_url: str = "", **kwargs: Any ) -> None: - self._config = AzureBlobStorageConfiguration(url=url, **kwargs) + self._config = AzureBlobStorageConfiguration(url=url, version=version, **kwargs) _policies = kwargs.pop("policies", None) if _policies is None: 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 e9866569775c..21c76b55270d 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 @@ -6,7 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Literal +from typing import Any from azure.core.pipeline import policies @@ -22,16 +22,15 @@ class AzureBlobStorageConfiguration: # pylint: disable=too-many-instance-attrib :param url: The URL of the service account, container, or blob that is the target of the desired operation. Required. :type url: str - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str """ - def __init__(self, url: str, **kwargs: Any) -> None: - version: Literal["2026-04-06"] = kwargs.pop("version", "2026-04-06") - + def __init__(self, url: str, version: str, **kwargs: Any) -> None: if url is None: raise ValueError("Parameter 'url' must not be None.") + if version is None: + raise ValueError("Parameter 'version' must not be None.") self.url = url self.version = version diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_utils/serialization.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_utils/serialization.py index ff543ed937ff..6da830e0cf4a 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_utils/serialization.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/_utils/serialization.py @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): 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 d1313555a124..f7a99bedac3a 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 @@ -45,17 +45,16 @@ class AzureBlobStorage: # pylint: disable=client-accepts-api-version-keyword :param url: The URL of the service account, container, or blob that is the target of the desired operation. Required. :type url: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :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 "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str """ def __init__( # pylint: disable=missing-client-constructor-parameter-credential - self, url: str, base_url: str = "", **kwargs: Any + self, url: str, version: str, base_url: str = "", **kwargs: Any ) -> None: - self._config = AzureBlobStorageConfiguration(url=url, **kwargs) + self._config = AzureBlobStorageConfiguration(url=url, version=version, **kwargs) _policies = kwargs.pop("policies", None) if _policies is None: 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 0aa4486f33f3..2b70484605eb 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 @@ -6,7 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Literal +from typing import Any from azure.core.pipeline import policies @@ -22,16 +22,15 @@ class AzureBlobStorageConfiguration: # pylint: disable=too-many-instance-attrib :param url: The URL of the service account, container, or blob that is the target of the desired operation. Required. :type url: str - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str """ - def __init__(self, url: str, **kwargs: Any) -> None: - version: Literal["2026-04-06"] = kwargs.pop("version", "2026-04-06") - + def __init__(self, url: str, version: str, **kwargs: Any) -> None: if url is None: raise ValueError("Parameter 'url' must not be None.") + if version is None: + raise ValueError("Parameter 'version' must not be None.") self.url = url self.version = version diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_append_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_append_blob_operations.py index 67a1de2e72ab..df0d342541fc 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_append_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_append_blob_operations.py @@ -58,7 +58,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, content_length: int, timeout: Optional[int] = None, @@ -176,6 +176,7 @@ async def create( _request = build_create_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, blob_content_type=_blob_content_type, blob_content_encoding=_blob_content_encoding, @@ -200,7 +201,6 @@ async def create( immutability_policy_mode=immutability_policy_mode, legal_hold=legal_hold, blob_type=blob_type, - version=self._config.version, headers=_headers, params=_params, ) @@ -246,7 +246,7 @@ async def create( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def append_block( + async def append_block( # pylint: disable=too-many-locals self, content_length: int, body: IO[bytes], @@ -357,6 +357,7 @@ async def append_block( _request = build_append_block_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, transactional_content_md5=transactional_content_md5, transactional_content_crc64=transactional_content_crc64, @@ -377,7 +378,6 @@ async def append_block( structured_content_length=structured_content_length, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -435,7 +435,7 @@ async def append_block( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def append_block_from_url( + async def append_block_from_url( # pylint: disable=too-many-locals self, source_url: str, content_length: int, @@ -447,15 +447,13 @@ async def append_block_from_url( request_id_parameter: Optional[str] = None, copy_source_authorization: Optional[str] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, append_position_access_conditions: Optional[_models.AppendPositionAccessConditions] = None, modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Append Block operation commits a new block of data to the end of an existing append blob @@ -492,17 +490,6 @@ async def append_block_from_url( :type copy_source_authorization: str :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param cpk_info: Parameter group. Default value is None. :type cpk_info: ~azure.storage.blob.models.CpkInfo :param cpk_scope_info: Parameter group. Default value is None. @@ -517,6 +504,8 @@ async def append_block_from_url( :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -551,6 +540,9 @@ async def append_block_from_url( _source_if_unmodified_since = None _source_if_match = None _source_if_none_match = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if cpk_info is not None: _encryption_algorithm = cpk_info.encryption_algorithm _encryption_key = cpk_info.encryption_key @@ -573,11 +565,16 @@ async def append_block_from_url( _source_if_modified_since = source_modified_access_conditions.source_if_modified_since _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_append_block_from_url_request( url=self._config.url, source_url=source_url, content_length=content_length, + version=self._config.version, source_range=source_range, source_content_md5=source_content_md5, source_contentcrc64=source_contentcrc64, @@ -602,11 +599,10 @@ async def append_block_from_url( request_id_parameter=request_id_parameter, copy_source_authorization=copy_source_authorization, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -721,6 +717,7 @@ async def seal( _request = build_seal_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, lease_id=_lease_id, @@ -730,7 +727,6 @@ async def seal( if_none_match=_if_none_match, append_position=_append_position, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_blob_operations.py index ecbada93f0db..5645f6b8cdb3 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_blob_operations.py @@ -177,6 +177,7 @@ async def download( _request = build_download_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -194,7 +195,6 @@ async def download( if_none_match=_if_none_match, if_tags=_if_tags, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -482,6 +482,7 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -495,7 +496,6 @@ async def get_properties( if_none_match=_if_none_match, if_tags=_if_tags, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -706,6 +706,7 @@ async def delete( _request = build_delete_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -720,7 +721,6 @@ async def delete( blob_delete_type=blob_delete_type, access_tier_if_modified_since=access_tier_if_modified_since, access_tier_if_unmodified_since=access_tier_if_unmodified_since, - version=self._config.version, headers=_headers, params=_params, ) @@ -787,10 +787,10 @@ async def undelete( _request = build_undelete_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -868,11 +868,11 @@ async def set_expiry( _request = build_set_expiry_request( url=self._config.url, expiry_options=expiry_options, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, expires_on=expires_on, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -981,6 +981,7 @@ async def set_http_headers( _request = build_set_http_headers_request( url=self._config.url, + version=self._config.version, timeout=timeout, blob_cache_control=_blob_cache_control, blob_content_type=_blob_content_type, @@ -996,7 +997,6 @@ async def set_http_headers( blob_content_disposition=_blob_content_disposition, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1098,6 +1098,7 @@ async def set_immutability_policy( _request = build_set_immutability_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, if_unmodified_since=_if_unmodified_since, @@ -1106,7 +1107,6 @@ async def set_immutability_policy( snapshot=snapshot, version_id=version_id, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1194,12 +1194,12 @@ async def delete_immutability_policy( _request = build_delete_immutability_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, snapshot=snapshot, version_id=version_id, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1285,12 +1285,12 @@ async def set_legal_hold( _request = build_set_legal_hold_request( url=self._config.url, legal_hold=legal_hold, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, snapshot=snapshot, version_id=version_id, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1408,6 +1408,7 @@ async def set_metadata( _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, lease_id=_lease_id, @@ -1422,7 +1423,6 @@ async def set_metadata( if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1531,6 +1531,7 @@ async def acquire_lease( _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -1542,7 +1543,6 @@ async def acquire_lease( request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1636,6 +1636,7 @@ async def release_lease( _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1645,7 +1646,6 @@ async def release_lease( request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1738,6 +1738,7 @@ async def renew_lease( _request = build_renew_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1747,7 +1748,6 @@ async def renew_lease( request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1847,6 +1847,7 @@ async def change_lease( url=self._config.url, lease_id=lease_id, proposed_lease_id=proposed_lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1856,7 +1857,6 @@ async def change_lease( request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1955,6 +1955,7 @@ async def break_lease( _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, break_period=break_period, if_modified_since=_if_modified_since, @@ -1965,7 +1966,6 @@ async def break_lease( request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2084,6 +2084,7 @@ async def create_snapshot( _request = build_create_snapshot_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, encryption_key=_encryption_key, @@ -2098,7 +2099,6 @@ async def create_snapshot( lease_id=_lease_id, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2138,7 +2138,7 @@ async def create_snapshot( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def start_copy_from_url( + async def start_copy_from_url( # pylint: disable=too-many-locals self, copy_source: str, timeout: Optional[int] = None, @@ -2254,6 +2254,7 @@ async def start_copy_from_url( _request = build_start_copy_from_url_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, metadata=metadata, tier=tier, @@ -2275,7 +2276,6 @@ async def start_copy_from_url( immutability_policy_expiry=immutability_policy_expiry, immutability_policy_mode=immutability_policy_mode, legal_hold=legal_hold, - version=self._config.version, headers=_headers, params=_params, ) @@ -2313,7 +2313,7 @@ async def start_copy_from_url( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def copy_from_url( + async def copy_from_url( # pylint: disable=too-many-locals self, copy_source: str, timeout: Optional[int] = None, @@ -2445,6 +2445,7 @@ async def copy_from_url( _request = build_copy_from_url_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, metadata=metadata, tier=tier, @@ -2469,7 +2470,6 @@ async def copy_from_url( copy_source_tags=copy_source_tags, file_request_intent=file_request_intent, x_ms_requires_sync=x_ms_requires_sync, - version=self._config.version, headers=_headers, params=_params, ) @@ -2567,12 +2567,12 @@ async def abort_copy_from_url( _request = build_abort_copy_from_url_request( url=self._config.url, copy_id=copy_id, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, comp=comp, copy_action_abort_constant=copy_action_abort_constant, - version=self._config.version, headers=_headers, params=_params, ) @@ -2681,6 +2681,7 @@ async def set_tier( _request = build_set_tier_request( url=self._config.url, tier=tier, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -2689,7 +2690,6 @@ async def set_tier( lease_id=_lease_id, if_tags=_if_tags, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2756,11 +2756,11 @@ async def get_account_info( _request = build_get_account_info_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2881,6 +2881,7 @@ async def query( _request = build_query_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, timeout=timeout, lease_id=_lease_id, @@ -2895,7 +2896,6 @@ async def query( request_id_parameter=request_id_parameter, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -3124,6 +3124,7 @@ async def get_tags( _request = build_get_tags_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, snapshot=snapshot, @@ -3135,7 +3136,6 @@ async def get_tags( if_match=_if_match, if_none_match=_if_none_match, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -3256,6 +3256,7 @@ async def set_tags( _request = build_set_tags_request( url=self._config.url, + version=self._config.version, timeout=timeout, version_id=version_id, transactional_content_md5=transactional_content_md5, @@ -3269,7 +3270,6 @@ async def set_tags( if_none_match=_if_none_match, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_block_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_block_blob_operations.py index 6d71698d3d2e..6356da0264ec 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_block_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_block_blob_operations.py @@ -60,7 +60,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def upload( + async def upload( # pylint: disable=too-many-locals self, content_length: int, body: IO[bytes], @@ -209,6 +209,7 @@ async def upload( _request = build_upload_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, transactional_content_md5=transactional_content_md5, blob_content_type=_blob_content_type, @@ -239,7 +240,6 @@ async def upload( structured_content_length=structured_content_length, blob_type=blob_type, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -289,7 +289,7 @@ async def upload( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def put_blob_from_url( + async def put_blob_from_url( # pylint: disable=too-many-locals self, content_length: int, copy_source: str, @@ -304,15 +304,13 @@ async def put_blob_from_url( copy_source_authorization: Optional[str] = None, copy_source_tags: Optional[Union[str, _models.BlobCopySourceTags]] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, blob_http_headers: Optional[_models.BlobHTTPHeaders] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Put Blob from URL operation creates a new Block Blob where the contents of the blob are @@ -370,17 +368,6 @@ async def put_blob_from_url( :type copy_source_tags: str or ~azure.storage.blob.models.BlobCopySourceTags :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param blob_http_headers: Parameter group. Default value is None. :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders :param lease_access_conditions: Parameter group. Default value is None. @@ -394,6 +381,8 @@ async def put_blob_from_url( :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -433,6 +422,9 @@ async def put_blob_from_url( _source_if_match = None _source_if_none_match = None _source_if_tags = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if blob_http_headers is not None: _blob_cache_control = blob_http_headers.blob_cache_control _blob_content_disposition = blob_http_headers.blob_content_disposition @@ -460,11 +452,16 @@ async def put_blob_from_url( _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_tags = source_modified_access_conditions.source_if_tags _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_put_blob_from_url_request( url=self._config.url, content_length=content_length, copy_source=copy_source, + version=self._config.version, timeout=timeout, transactional_content_md5=transactional_content_md5, blob_content_type=_blob_content_type, @@ -497,11 +494,10 @@ async def put_blob_from_url( copy_source_authorization=copy_source_authorization, copy_source_tags=copy_source_tags, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, blob_type=blob_type, - version=self._config.version, headers=_headers, params=_params, ) @@ -547,7 +543,7 @@ async def put_blob_from_url( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def stage_block( + async def stage_block( # pylint: disable=too-many-locals self, block_id: str, content_length: int, @@ -639,6 +635,7 @@ async def stage_block( url=self._config.url, block_id=block_id, content_length=content_length, + version=self._config.version, transactional_content_md5=transactional_content_md5, transactional_content_crc64=transactional_content_crc64, timeout=timeout, @@ -652,7 +649,6 @@ async def stage_block( structured_content_length=structured_content_length, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -702,7 +698,7 @@ async def stage_block( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def stage_block_from_url( + async def stage_block_from_url( # pylint: disable=too-many-locals self, block_id: str, content_length: int, @@ -714,13 +710,11 @@ async def stage_block_from_url( request_id_parameter: Optional[str] = None, copy_source_authorization: Optional[str] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Stage Block operation creates a new block to be committed as part of a blob where the @@ -756,17 +750,6 @@ async def stage_block_from_url( :type copy_source_authorization: str :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param cpk_info: Parameter group. Default value is None. :type cpk_info: ~azure.storage.blob.models.CpkInfo :param cpk_scope_info: Parameter group. Default value is None. @@ -776,6 +759,8 @@ async def stage_block_from_url( :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -803,6 +788,9 @@ async def stage_block_from_url( _source_if_unmodified_since = None _source_if_match = None _source_if_none_match = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if cpk_info is not None: _encryption_algorithm = cpk_info.encryption_algorithm _encryption_key = cpk_info.encryption_key @@ -816,12 +804,17 @@ async def stage_block_from_url( _source_if_modified_since = source_modified_access_conditions.source_if_modified_since _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_stage_block_from_url_request( url=self._config.url, block_id=block_id, content_length=content_length, source_url=source_url, + version=self._config.version, source_range=source_range, source_content_md5=source_content_md5, source_contentcrc64=source_contentcrc64, @@ -838,11 +831,10 @@ async def stage_block_from_url( request_id_parameter=request_id_parameter, copy_source_authorization=copy_source_authorization, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -888,7 +880,7 @@ async def stage_block_from_url( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def commit_block_list( + async def commit_block_list( # pylint: disable=too-many-locals self, blocks: _models.BlockLookupList, timeout: Optional[int] = None, @@ -1026,6 +1018,7 @@ async def commit_block_list( _request = build_commit_block_list_request( url=self._config.url, + version=self._config.version, timeout=timeout, blob_cache_control=_blob_cache_control, blob_content_type=_blob_content_type, @@ -1054,7 +1047,6 @@ async def commit_block_list( legal_hold=legal_hold, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1167,6 +1159,7 @@ async def get_block_list( _request = build_get_block_list_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, list_type=list_type, timeout=timeout, @@ -1174,7 +1167,6 @@ async def get_block_list( if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) 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 22728c401369..09bb123a20af 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 @@ -133,6 +133,7 @@ async def create( _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, access=access, @@ -140,7 +141,6 @@ async def create( default_encryption_scope=_default_encryption_scope, prevent_encryption_scope_override=_prevent_encryption_scope_override, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -220,11 +220,11 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -332,13 +332,13 @@ async def delete( _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, request_id_parameter=request_id_parameter, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -431,6 +431,7 @@ async def set_metadata( _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, metadata=metadata, @@ -438,7 +439,6 @@ async def set_metadata( request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -519,12 +519,12 @@ async def get_access_policy( _request = build_get_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -636,6 +636,7 @@ async def set_access_policy( _request = build_set_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, access=access, @@ -645,7 +646,6 @@ async def set_access_policy( restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -727,13 +727,13 @@ async def restore( _request = build_restore_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, deleted_container_name=deleted_container_name, deleted_container_version=deleted_container_version, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -813,12 +813,12 @@ async def rename( _request = build_rename_request( url=self._config.url, source_container_name=source_container_name, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, source_lease_id=source_lease_id, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -901,12 +901,12 @@ async def submit_batch( _request = build_submit_batch_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, multipart_content_type=multipart_content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1009,6 +1009,7 @@ async def filter_blobs( _request = build_filter_blobs_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, where=where, @@ -1017,7 +1018,6 @@ async def filter_blobs( include=include, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1113,6 +1113,7 @@ async def acquire_lease( _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -1122,7 +1123,6 @@ async def acquire_lease( comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1211,6 +1211,7 @@ async def release_lease( _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1218,7 +1219,6 @@ async def release_lease( comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1306,6 +1306,7 @@ async def renew_lease( _request = build_renew_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1313,7 +1314,6 @@ async def renew_lease( comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1407,6 +1407,7 @@ async def break_lease( _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, break_period=break_period, if_modified_since=_if_modified_since, @@ -1415,7 +1416,6 @@ async def break_lease( comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1510,6 +1510,7 @@ async def change_lease( url=self._config.url, lease_id=lease_id, proposed_lease_id=proposed_lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1517,7 +1518,6 @@ async def change_lease( comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1620,6 +1620,7 @@ async def list_blob_flat_segment( _request = build_list_blob_flat_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -1629,7 +1630,6 @@ async def list_blob_flat_segment( request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1741,6 +1741,7 @@ async def list_blob_hierarchy_segment( _request = build_list_blob_hierarchy_segment_request( url=self._config.url, delimiter=delimiter, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -1750,7 +1751,6 @@ async def list_blob_hierarchy_segment( request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1823,11 +1823,11 @@ async def get_account_info( _request = build_get_account_info_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_page_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_page_blob_operations.py index ad27a0aa826a..639ca92eade7 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_page_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_page_blob_operations.py @@ -63,7 +63,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, content_length: int, blob_content_length: int, @@ -195,6 +195,7 @@ async def create( url=self._config.url, content_length=content_length, blob_content_length=blob_content_length, + version=self._config.version, timeout=timeout, tier=tier, blob_content_type=_blob_content_type, @@ -221,7 +222,6 @@ async def create( immutability_policy_mode=immutability_policy_mode, legal_hold=legal_hold, blob_type=blob_type, - version=self._config.version, headers=_headers, params=_params, ) @@ -267,7 +267,7 @@ async def create( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def upload_pages( + async def upload_pages( # pylint: disable=too-many-locals self, content_length: int, body: IO[bytes], @@ -384,6 +384,7 @@ async def upload_pages( _request = build_upload_pages_request( url=self._config.url, content_length=content_length, + version=self._config.version, transactional_content_md5=transactional_content_md5, transactional_content_crc64=transactional_content_crc64, timeout=timeout, @@ -407,7 +408,6 @@ async def upload_pages( comp=comp, page_write=page_write, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -557,6 +557,7 @@ async def clear_pages( _request = build_clear_pages_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, range=range, lease_id=_lease_id, @@ -575,7 +576,6 @@ async def clear_pages( request_id_parameter=request_id_parameter, comp=comp, page_write=page_write, - version=self._config.version, headers=_headers, params=_params, ) @@ -617,7 +617,7 @@ async def clear_pages( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def upload_pages_from_url( + async def upload_pages_from_url( # pylint: disable=too-many-locals self, source_url: str, source_range: str, @@ -629,15 +629,13 @@ async def upload_pages_from_url( request_id_parameter: Optional[str] = None, copy_source_authorization: Optional[str] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, sequence_number_access_conditions: Optional[_models.SequenceNumberAccessConditions] = None, modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Upload Pages operation writes a range of pages to a page blob where the contents are read @@ -673,17 +671,6 @@ async def upload_pages_from_url( :type copy_source_authorization: str :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param cpk_info: Parameter group. Default value is None. :type cpk_info: ~azure.storage.blob.models.CpkInfo :param cpk_scope_info: Parameter group. Default value is None. @@ -698,6 +685,8 @@ async def upload_pages_from_url( :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -734,6 +723,9 @@ async def upload_pages_from_url( _source_if_unmodified_since = None _source_if_match = None _source_if_none_match = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if cpk_info is not None: _encryption_algorithm = cpk_info.encryption_algorithm _encryption_key = cpk_info.encryption_key @@ -759,6 +751,10 @@ async def upload_pages_from_url( _source_if_modified_since = source_modified_access_conditions.source_if_modified_since _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_upload_pages_from_url_request( url=self._config.url, @@ -766,6 +762,7 @@ async def upload_pages_from_url( source_range=source_range, content_length=content_length, range=range, + version=self._config.version, source_content_md5=source_content_md5, source_contentcrc64=source_contentcrc64, timeout=timeout, @@ -789,12 +786,11 @@ async def upload_pages_from_url( request_id_parameter=request_id_parameter, copy_source_authorization=copy_source_authorization, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, comp=comp, page_write=page_write, - version=self._config.version, headers=_headers, params=_params, ) @@ -927,6 +923,7 @@ async def get_page_ranges( _request = build_get_page_ranges_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, timeout=timeout, range=range, @@ -940,7 +937,6 @@ async def get_page_ranges( marker=marker, maxresults=maxresults, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1081,6 +1077,7 @@ async def get_page_ranges_diff( _request = build_get_page_ranges_diff_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, timeout=timeout, prevsnapshot=prevsnapshot, @@ -1096,7 +1093,6 @@ async def get_page_ranges_diff( marker=marker, maxresults=maxresults, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1217,6 +1213,7 @@ async def resize( _request = build_resize_request( url=self._config.url, blob_content_length=blob_content_length, + version=self._config.version, timeout=timeout, lease_id=_lease_id, encryption_key=_encryption_key, @@ -1230,7 +1227,6 @@ async def resize( if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1338,6 +1334,7 @@ async def update_sequence_number( _request = build_update_sequence_number_request( url=self._config.url, sequence_number_action=sequence_number_action, + version=self._config.version, timeout=timeout, lease_id=_lease_id, if_modified_since=_if_modified_since, @@ -1348,7 +1345,6 @@ async def update_sequence_number( blob_sequence_number=blob_sequence_number, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1449,6 +1445,7 @@ async def copy_incremental( _request = build_copy_incremental_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -1457,7 +1454,6 @@ async def copy_incremental( if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_service_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_service_operations.py index c122e3eea681..b0cc80ff0561 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_service_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations/_service_operations.py @@ -108,12 +108,12 @@ async def set_properties( _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -182,11 +182,11 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -259,11 +259,11 @@ async def get_statistics( _request = build_get_statistics_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -362,6 +362,7 @@ async def list_containers_segment( _request = build_list_containers_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -369,7 +370,6 @@ async def list_containers_segment( timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -450,12 +450,12 @@ async def get_user_delegation_key( _request = build_get_user_delegation_key_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -528,11 +528,11 @@ async def get_account_info( _request = build_get_account_info_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -617,11 +617,11 @@ async def submit_batch( _request = build_submit_batch_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, multipart_content_type=multipart_content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -724,6 +724,7 @@ async def filter_blobs( _request = build_filter_blobs_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, where=where, @@ -731,7 +732,6 @@ async def filter_blobs( maxresults=maxresults, include=include, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py index 8bc56b312fd4..95e38c268f1b 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py @@ -60,6 +60,7 @@ RetentionPolicy, SequenceNumberAccessConditions, SignedIdentifier, + SourceCpkInfo, SourceModifiedAccessConditions, StaticWebsite, StorageError, @@ -149,6 +150,7 @@ "RetentionPolicy", "SequenceNumberAccessConditions", "SignedIdentifier", + "SourceCpkInfo", "SourceModifiedAccessConditions", "StaticWebsite", "StorageError", diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py index 6d21f5c4b208..e3cb9c5b99eb 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py @@ -2513,6 +2513,54 @@ def __init__( self.access_policy = access_policy +class SourceCpkInfo(_serialization.Model): + """Parameter group. + + :ivar source_encryption_key: Optional. Specifies the source encryption key to use to encrypt + the source data provided in the request. + :vartype source_encryption_key: str + :ivar source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. + Must be provided if the x-ms-source-encryption-key header is provided. + :vartype source_encryption_key_sha256: str + :ivar source_encryption_algorithm: The algorithm used to produce the source encryption key + hash. Currently, the only accepted value is "AES256". Must be provided if the + x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". + :vartype source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType + """ + + _attribute_map = { + "source_encryption_key": {"key": "sourceEncryptionKey", "type": "str"}, + "source_encryption_key_sha256": {"key": "sourceEncryptionKeySha256", "type": "str"}, + "source_encryption_algorithm": {"key": "sourceEncryptionAlgorithm", "type": "str"}, + } + + def __init__( + self, + *, + source_encryption_key: Optional[str] = None, + source_encryption_key_sha256: Optional[str] = None, + source_encryption_algorithm: Optional[Union[str, "_models.EncryptionAlgorithmType"]] = None, + **kwargs: Any + ) -> None: + """ + :keyword source_encryption_key: Optional. Specifies the source encryption key to use to encrypt + the source data provided in the request. + :paramtype source_encryption_key: str + :keyword source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. + Must be provided if the x-ms-source-encryption-key header is provided. + :paramtype source_encryption_key_sha256: str + :keyword source_encryption_algorithm: The algorithm used to produce the source encryption key + hash. Currently, the only accepted value is "AES256". Must be provided if the + x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". + :paramtype source_encryption_algorithm: str or + ~azure.storage.blob.models.EncryptionAlgorithmType + """ + super().__init__(**kwargs) + self.source_encryption_key = source_encryption_key + self.source_encryption_key_sha256 = source_encryption_key_sha256 + self.source_encryption_algorithm = source_encryption_algorithm + + class SourceModifiedAccessConditions(_serialization.Model): """Parameter group. 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 767678ea7149..70a3ddb8178f 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 @@ -35,10 +35,11 @@ _SERIALIZER.client_side_validation = False -def build_create_request( +def build_create_request( # pylint: disable=too-many-locals url: str, *, content_length: int, + version: str, timeout: Optional[int] = None, blob_content_type: Optional[str] = None, blob_content_encoding: Optional[str] = None, @@ -68,7 +69,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -148,11 +148,12 @@ def build_create_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_append_block_request( +def build_append_block_request( # pylint: disable=too-many-locals url: str, *, content_length: int, content: IO[bytes], + version: str, timeout: Optional[int] = None, transactional_content_md5: Optional[bytes] = None, transactional_content_crc64: Optional[bytes] = None, @@ -178,7 +179,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -246,11 +246,12 @@ def build_append_block_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, content=content, **kwargs) -def build_append_block_from_url_request( +def build_append_block_from_url_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, source_url: str, content_length: int, + version: str, source_range: Optional[str] = None, source_content_md5: Optional[bytes] = None, source_contentcrc64: Optional[bytes] = None, @@ -284,7 +285,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -382,6 +382,7 @@ def build_append_block_from_url_request( def build_seal_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, lease_id: Optional[str] = None, @@ -396,7 +397,6 @@ def build_seal_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["seal"] = kwargs.pop("comp", _params.pop("comp", "seal")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -453,7 +453,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def create( # pylint: disable=inconsistent-return-statements + def create( # pylint: disable=inconsistent-return-statements,too-many-locals self, content_length: int, timeout: Optional[int] = None, @@ -571,6 +571,7 @@ def create( # pylint: disable=inconsistent-return-statements _request = build_create_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, blob_content_type=_blob_content_type, blob_content_encoding=_blob_content_encoding, @@ -595,7 +596,6 @@ def create( # pylint: disable=inconsistent-return-statements immutability_policy_mode=immutability_policy_mode, legal_hold=legal_hold, blob_type=blob_type, - version=self._config.version, headers=_headers, params=_params, ) @@ -641,7 +641,7 @@ def create( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def append_block( # pylint: disable=inconsistent-return-statements + def append_block( # pylint: disable=inconsistent-return-statements,too-many-locals self, content_length: int, body: IO[bytes], @@ -752,6 +752,7 @@ def append_block( # pylint: disable=inconsistent-return-statements _request = build_append_block_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, transactional_content_md5=transactional_content_md5, transactional_content_crc64=transactional_content_crc64, @@ -772,7 +773,6 @@ def append_block( # pylint: disable=inconsistent-return-statements structured_content_length=structured_content_length, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -830,7 +830,7 @@ def append_block( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def append_block_from_url( # pylint: disable=inconsistent-return-statements + def append_block_from_url( # pylint: disable=inconsistent-return-statements,too-many-locals self, source_url: str, content_length: int, @@ -842,15 +842,13 @@ def append_block_from_url( # pylint: disable=inconsistent-return-statements request_id_parameter: Optional[str] = None, copy_source_authorization: Optional[str] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, append_position_access_conditions: Optional[_models.AppendPositionAccessConditions] = None, modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Append Block operation commits a new block of data to the end of an existing append blob @@ -887,17 +885,6 @@ def append_block_from_url( # pylint: disable=inconsistent-return-statements :type copy_source_authorization: str :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param cpk_info: Parameter group. Default value is None. :type cpk_info: ~azure.storage.blob.models.CpkInfo :param cpk_scope_info: Parameter group. Default value is None. @@ -912,6 +899,8 @@ def append_block_from_url( # pylint: disable=inconsistent-return-statements :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -946,6 +935,9 @@ def append_block_from_url( # pylint: disable=inconsistent-return-statements _source_if_unmodified_since = None _source_if_match = None _source_if_none_match = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if cpk_info is not None: _encryption_algorithm = cpk_info.encryption_algorithm _encryption_key = cpk_info.encryption_key @@ -968,11 +960,16 @@ def append_block_from_url( # pylint: disable=inconsistent-return-statements _source_if_modified_since = source_modified_access_conditions.source_if_modified_since _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_append_block_from_url_request( url=self._config.url, source_url=source_url, content_length=content_length, + version=self._config.version, source_range=source_range, source_content_md5=source_content_md5, source_contentcrc64=source_contentcrc64, @@ -997,11 +994,10 @@ def append_block_from_url( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, copy_source_authorization=copy_source_authorization, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1116,6 +1112,7 @@ def seal( # pylint: disable=inconsistent-return-statements _request = build_seal_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, lease_id=_lease_id, @@ -1125,7 +1122,6 @@ def seal( # pylint: disable=inconsistent-return-statements if_none_match=_if_none_match, append_position=_append_position, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) 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 03db2d8d1d8f..cb8e18ed1e0d 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 @@ -40,6 +40,7 @@ def build_download_request( url: str, *, + version: str, snapshot: Optional[str] = None, version_id: Optional[str] = None, timeout: Optional[int] = None, @@ -62,7 +63,6 @@ def build_download_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -125,6 +125,7 @@ def build_download_request( def build_get_properties_request( url: str, *, + version: str, snapshot: Optional[str] = None, version_id: Optional[str] = None, timeout: Optional[int] = None, @@ -143,7 +144,6 @@ def build_get_properties_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -194,6 +194,7 @@ def build_get_properties_request( def build_delete_request( url: str, *, + version: str, snapshot: Optional[str] = None, version_id: Optional[str] = None, timeout: Optional[int] = None, @@ -213,7 +214,6 @@ def build_delete_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -266,13 +266,12 @@ def build_delete_request( def build_undelete_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["undelete"] = kwargs.pop("comp", _params.pop("comp", "undelete")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -301,6 +300,7 @@ def build_set_expiry_request( url: str, *, expiry_options: Union[str, _models.BlobExpiryOptions], + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, expires_on: Optional[str] = None, @@ -310,7 +310,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -341,6 +340,7 @@ def build_set_expiry_request( def build_set_http_headers_request( url: str, *, + version: str, timeout: Optional[int] = None, blob_cache_control: Optional[str] = None, blob_content_type: Optional[str] = None, @@ -361,7 +361,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -419,6 +418,7 @@ def build_set_http_headers_request( def build_set_immutability_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -432,7 +432,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -474,6 +473,7 @@ def build_set_immutability_policy_request( def build_delete_immutability_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, snapshot: Optional[str] = None, @@ -484,7 +484,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -517,6 +516,7 @@ def build_set_legal_hold_request( url: str, *, legal_hold: bool, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, snapshot: Optional[str] = None, @@ -527,7 +527,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -560,6 +559,7 @@ def build_set_legal_hold_request( def build_set_metadata_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, lease_id: Optional[str] = None, @@ -579,7 +579,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -631,6 +630,7 @@ def build_set_metadata_request( def build_acquire_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, duration: Optional[int] = None, proposed_lease_id: Optional[str] = None, @@ -647,7 +647,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -691,6 +690,7 @@ def build_release_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -705,7 +705,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -746,6 +745,7 @@ def build_renew_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -760,7 +760,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -802,6 +801,7 @@ def build_change_lease_request( *, lease_id: str, proposed_lease_id: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -816,7 +816,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -857,6 +856,7 @@ def build_change_lease_request( def build_break_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, break_period: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, @@ -872,7 +872,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -913,6 +912,7 @@ def build_break_lease_request( def build_create_snapshot_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, encryption_key: Optional[str] = None, @@ -932,7 +932,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -981,10 +980,11 @@ def build_create_snapshot_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_start_copy_from_url_request( +def build_start_copy_from_url_request( # pylint: disable=too-many-locals url: str, *, copy_source: str, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, tier: Optional[Union[str, _models.AccessTierOptional]] = None, @@ -1011,7 +1011,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1082,10 +1081,11 @@ def build_start_copy_from_url_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_copy_from_url_request( +def build_copy_from_url_request( # pylint: disable=too-many-locals url: str, *, copy_source: str, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, tier: Optional[Union[str, _models.AccessTierOptional]] = None, @@ -1115,7 +1115,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1197,6 +1196,7 @@ def build_abort_copy_from_url_request( url: str, *, copy_id: str, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -1209,7 +1209,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1242,6 +1241,7 @@ def build_set_tier_request( url: str, *, tier: Union[str, _models.AccessTierRequired], + version: str, snapshot: Optional[str] = None, version_id: Optional[str] = None, timeout: Optional[int] = None, @@ -1255,7 +1255,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1292,14 +1291,13 @@ def build_set_tier_request( def build_get_account_info_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["account"] = kwargs.pop("restype", _params.pop("restype", "account")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1328,6 +1326,7 @@ def build_get_account_info_request( def build_query_request( url: str, *, + version: str, snapshot: Optional[str] = None, timeout: Optional[int] = None, lease_id: Optional[str] = None, @@ -1348,7 +1347,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1400,6 +1398,7 @@ def build_query_request( def build_get_tags_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, snapshot: Optional[str] = None, @@ -1416,7 +1415,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1462,6 +1460,7 @@ def build_get_tags_request( def build_set_tags_request( url: str, *, + version: str, timeout: Optional[int] = None, version_id: Optional[str] = None, transactional_content_md5: Optional[bytes] = None, @@ -1481,7 +1480,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1649,6 +1647,7 @@ def download( _request = build_download_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -1666,7 +1665,6 @@ def download( if_none_match=_if_none_match, if_tags=_if_tags, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -1954,6 +1952,7 @@ def get_properties( # pylint: disable=inconsistent-return-statements _request = build_get_properties_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -1967,7 +1966,6 @@ def get_properties( # pylint: disable=inconsistent-return-statements if_none_match=_if_none_match, if_tags=_if_tags, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -2178,6 +2176,7 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -2192,7 +2191,6 @@ def delete( # pylint: disable=inconsistent-return-statements blob_delete_type=blob_delete_type, access_tier_if_modified_since=access_tier_if_modified_since, access_tier_if_unmodified_since=access_tier_if_unmodified_since, - version=self._config.version, headers=_headers, params=_params, ) @@ -2259,10 +2257,10 @@ def undelete( # pylint: disable=inconsistent-return-statements _request = build_undelete_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2340,11 +2338,11 @@ def set_expiry( # pylint: disable=inconsistent-return-statements _request = build_set_expiry_request( url=self._config.url, expiry_options=expiry_options, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, expires_on=expires_on, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2453,6 +2451,7 @@ def set_http_headers( # pylint: disable=inconsistent-return-statements _request = build_set_http_headers_request( url=self._config.url, + version=self._config.version, timeout=timeout, blob_cache_control=_blob_cache_control, blob_content_type=_blob_content_type, @@ -2468,7 +2467,6 @@ def set_http_headers( # pylint: disable=inconsistent-return-statements blob_content_disposition=_blob_content_disposition, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2570,6 +2568,7 @@ def set_immutability_policy( # pylint: disable=inconsistent-return-statements _request = build_set_immutability_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, if_unmodified_since=_if_unmodified_since, @@ -2578,7 +2577,6 @@ def set_immutability_policy( # pylint: disable=inconsistent-return-statements snapshot=snapshot, version_id=version_id, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2666,12 +2664,12 @@ def delete_immutability_policy( # pylint: disable=inconsistent-return-statement _request = build_delete_immutability_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, snapshot=snapshot, version_id=version_id, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2757,12 +2755,12 @@ def set_legal_hold( # pylint: disable=inconsistent-return-statements _request = build_set_legal_hold_request( url=self._config.url, legal_hold=legal_hold, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, snapshot=snapshot, version_id=version_id, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2880,6 +2878,7 @@ def set_metadata( # pylint: disable=inconsistent-return-statements _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, lease_id=_lease_id, @@ -2894,7 +2893,6 @@ def set_metadata( # pylint: disable=inconsistent-return-statements if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -3003,6 +3001,7 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -3014,7 +3013,6 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -3108,6 +3106,7 @@ def release_lease( # pylint: disable=inconsistent-return-statements _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -3117,7 +3116,6 @@ def release_lease( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -3210,6 +3208,7 @@ def renew_lease( # pylint: disable=inconsistent-return-statements _request = build_renew_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -3219,7 +3218,6 @@ def renew_lease( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -3319,6 +3317,7 @@ def change_lease( # pylint: disable=inconsistent-return-statements url=self._config.url, lease_id=lease_id, proposed_lease_id=proposed_lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -3328,7 +3327,6 @@ def change_lease( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -3427,6 +3425,7 @@ def break_lease( # pylint: disable=inconsistent-return-statements _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, break_period=break_period, if_modified_since=_if_modified_since, @@ -3437,7 +3436,6 @@ def break_lease( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -3556,6 +3554,7 @@ def create_snapshot( # pylint: disable=inconsistent-return-statements _request = build_create_snapshot_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, encryption_key=_encryption_key, @@ -3570,7 +3569,6 @@ def create_snapshot( # pylint: disable=inconsistent-return-statements lease_id=_lease_id, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -3610,7 +3608,7 @@ def create_snapshot( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def start_copy_from_url( # pylint: disable=inconsistent-return-statements + def start_copy_from_url( # pylint: disable=inconsistent-return-statements,too-many-locals self, copy_source: str, timeout: Optional[int] = None, @@ -3726,6 +3724,7 @@ def start_copy_from_url( # pylint: disable=inconsistent-return-statements _request = build_start_copy_from_url_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, metadata=metadata, tier=tier, @@ -3747,7 +3746,6 @@ def start_copy_from_url( # pylint: disable=inconsistent-return-statements immutability_policy_expiry=immutability_policy_expiry, immutability_policy_mode=immutability_policy_mode, legal_hold=legal_hold, - version=self._config.version, headers=_headers, params=_params, ) @@ -3785,7 +3783,7 @@ def start_copy_from_url( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def copy_from_url( # pylint: disable=inconsistent-return-statements + def copy_from_url( # pylint: disable=inconsistent-return-statements,too-many-locals self, copy_source: str, timeout: Optional[int] = None, @@ -3917,6 +3915,7 @@ def copy_from_url( # pylint: disable=inconsistent-return-statements _request = build_copy_from_url_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, metadata=metadata, tier=tier, @@ -3941,7 +3940,6 @@ def copy_from_url( # pylint: disable=inconsistent-return-statements copy_source_tags=copy_source_tags, file_request_intent=file_request_intent, x_ms_requires_sync=x_ms_requires_sync, - version=self._config.version, headers=_headers, params=_params, ) @@ -4039,12 +4037,12 @@ def abort_copy_from_url( # pylint: disable=inconsistent-return-statements _request = build_abort_copy_from_url_request( url=self._config.url, copy_id=copy_id, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, comp=comp, copy_action_abort_constant=copy_action_abort_constant, - version=self._config.version, headers=_headers, params=_params, ) @@ -4153,6 +4151,7 @@ def set_tier( # pylint: disable=inconsistent-return-statements _request = build_set_tier_request( url=self._config.url, tier=tier, + version=self._config.version, snapshot=snapshot, version_id=version_id, timeout=timeout, @@ -4161,7 +4160,6 @@ def set_tier( # pylint: disable=inconsistent-return-statements lease_id=_lease_id, if_tags=_if_tags, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -4228,11 +4226,11 @@ def get_account_info( # pylint: disable=inconsistent-return-statements _request = build_get_account_info_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -4353,6 +4351,7 @@ def query( _request = build_query_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, timeout=timeout, lease_id=_lease_id, @@ -4367,7 +4366,6 @@ def query( request_id_parameter=request_id_parameter, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -4596,6 +4594,7 @@ def get_tags( _request = build_get_tags_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, snapshot=snapshot, @@ -4607,7 +4606,6 @@ def get_tags( if_match=_if_match, if_none_match=_if_none_match, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -4728,6 +4726,7 @@ def set_tags( # pylint: disable=inconsistent-return-statements _request = build_set_tags_request( url=self._config.url, + version=self._config.version, timeout=timeout, version_id=version_id, transactional_content_md5=transactional_content_md5, @@ -4741,7 +4740,6 @@ def set_tags( # pylint: disable=inconsistent-return-statements if_none_match=_if_none_match, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, 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 f946eae46263..f4a3ca253280 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 @@ -35,11 +35,12 @@ _SERIALIZER.client_side_validation = False -def build_upload_request( +def build_upload_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, content_length: int, content: IO[bytes], + version: str, timeout: Optional[int] = None, transactional_content_md5: Optional[bytes] = None, blob_content_type: Optional[str] = None, @@ -75,7 +76,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -173,11 +173,12 @@ def build_upload_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, content=content, **kwargs) -def build_put_blob_from_url_request( +def build_put_blob_from_url_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, content_length: int, copy_source: str, + version: str, timeout: Optional[int] = None, transactional_content_md5: Optional[bytes] = None, blob_content_type: Optional[str] = None, @@ -219,7 +220,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -342,6 +342,7 @@ def build_stage_block_request( block_id: str, content_length: int, content: IO[bytes], + version: str, transactional_content_md5: Optional[bytes] = None, transactional_content_crc64: Optional[bytes] = None, timeout: Optional[int] = None, @@ -360,7 +361,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -415,12 +415,13 @@ def build_stage_block_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, content=content, **kwargs) -def build_stage_block_from_url_request( +def build_stage_block_from_url_request( # pylint: disable=too-many-locals url: str, *, block_id: str, content_length: int, source_url: str, + version: str, source_range: Optional[str] = None, source_content_md5: Optional[bytes] = None, source_contentcrc64: Optional[bytes] = None, @@ -446,7 +447,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -524,10 +524,11 @@ def build_stage_block_from_url_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_commit_block_list_request( +def build_commit_block_list_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, content: Any, + version: str, timeout: Optional[int] = None, blob_cache_control: Optional[str] = None, blob_content_type: Optional[str] = None, @@ -561,7 +562,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -655,6 +655,7 @@ def build_commit_block_list_request( def build_get_block_list_request( url: str, *, + version: str, snapshot: Optional[str] = None, list_type: Union[str, _models.BlockListType] = "committed", timeout: Optional[int] = None, @@ -667,7 +668,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -719,7 +719,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def upload( # pylint: disable=inconsistent-return-statements + def upload( # pylint: disable=inconsistent-return-statements,too-many-locals self, content_length: int, body: IO[bytes], @@ -868,6 +868,7 @@ def upload( # pylint: disable=inconsistent-return-statements _request = build_upload_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, transactional_content_md5=transactional_content_md5, blob_content_type=_blob_content_type, @@ -898,7 +899,6 @@ def upload( # pylint: disable=inconsistent-return-statements structured_content_length=structured_content_length, blob_type=blob_type, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -948,7 +948,7 @@ def upload( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def put_blob_from_url( # pylint: disable=inconsistent-return-statements + def put_blob_from_url( # pylint: disable=inconsistent-return-statements,too-many-locals self, content_length: int, copy_source: str, @@ -963,15 +963,13 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements copy_source_authorization: Optional[str] = None, copy_source_tags: Optional[Union[str, _models.BlobCopySourceTags]] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, blob_http_headers: Optional[_models.BlobHTTPHeaders] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Put Blob from URL operation creates a new Block Blob where the contents of the blob are @@ -1029,17 +1027,6 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements :type copy_source_tags: str or ~azure.storage.blob.models.BlobCopySourceTags :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param blob_http_headers: Parameter group. Default value is None. :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders :param lease_access_conditions: Parameter group. Default value is None. @@ -1053,6 +1040,8 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -1092,6 +1081,9 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements _source_if_match = None _source_if_none_match = None _source_if_tags = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if blob_http_headers is not None: _blob_cache_control = blob_http_headers.blob_cache_control _blob_content_disposition = blob_http_headers.blob_content_disposition @@ -1119,11 +1111,16 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_tags = source_modified_access_conditions.source_if_tags _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_put_blob_from_url_request( url=self._config.url, content_length=content_length, copy_source=copy_source, + version=self._config.version, timeout=timeout, transactional_content_md5=transactional_content_md5, blob_content_type=_blob_content_type, @@ -1156,11 +1153,10 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements copy_source_authorization=copy_source_authorization, copy_source_tags=copy_source_tags, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, blob_type=blob_type, - version=self._config.version, headers=_headers, params=_params, ) @@ -1206,7 +1202,7 @@ def put_blob_from_url( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def stage_block( # pylint: disable=inconsistent-return-statements + def stage_block( # pylint: disable=inconsistent-return-statements,too-many-locals self, block_id: str, content_length: int, @@ -1298,6 +1294,7 @@ def stage_block( # pylint: disable=inconsistent-return-statements url=self._config.url, block_id=block_id, content_length=content_length, + version=self._config.version, transactional_content_md5=transactional_content_md5, transactional_content_crc64=transactional_content_crc64, timeout=timeout, @@ -1311,7 +1308,6 @@ def stage_block( # pylint: disable=inconsistent-return-statements structured_content_length=structured_content_length, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1361,7 +1357,7 @@ def stage_block( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def stage_block_from_url( # pylint: disable=inconsistent-return-statements + def stage_block_from_url( # pylint: disable=inconsistent-return-statements,too-many-locals self, block_id: str, content_length: int, @@ -1373,13 +1369,11 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements request_id_parameter: Optional[str] = None, copy_source_authorization: Optional[str] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Stage Block operation creates a new block to be committed as part of a blob where the @@ -1415,17 +1409,6 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements :type copy_source_authorization: str :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param cpk_info: Parameter group. Default value is None. :type cpk_info: ~azure.storage.blob.models.CpkInfo :param cpk_scope_info: Parameter group. Default value is None. @@ -1435,6 +1418,8 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -1462,6 +1447,9 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements _source_if_unmodified_since = None _source_if_match = None _source_if_none_match = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if cpk_info is not None: _encryption_algorithm = cpk_info.encryption_algorithm _encryption_key = cpk_info.encryption_key @@ -1475,12 +1463,17 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements _source_if_modified_since = source_modified_access_conditions.source_if_modified_since _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_stage_block_from_url_request( url=self._config.url, block_id=block_id, content_length=content_length, source_url=source_url, + version=self._config.version, source_range=source_range, source_content_md5=source_content_md5, source_contentcrc64=source_contentcrc64, @@ -1497,11 +1490,10 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, copy_source_authorization=copy_source_authorization, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1547,7 +1539,7 @@ def stage_block_from_url( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def commit_block_list( # pylint: disable=inconsistent-return-statements + def commit_block_list( # pylint: disable=inconsistent-return-statements,too-many-locals self, blocks: _models.BlockLookupList, timeout: Optional[int] = None, @@ -1685,6 +1677,7 @@ def commit_block_list( # pylint: disable=inconsistent-return-statements _request = build_commit_block_list_request( url=self._config.url, + version=self._config.version, timeout=timeout, blob_cache_control=_blob_cache_control, blob_content_type=_blob_content_type, @@ -1713,7 +1706,6 @@ def commit_block_list( # pylint: disable=inconsistent-return-statements legal_hold=legal_hold, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1826,6 +1818,7 @@ def get_block_list( _request = build_get_block_list_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, list_type=list_type, timeout=timeout, @@ -1833,7 +1826,6 @@ def get_block_list( if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) 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 5b4e6875a9a6..ec2deb0de1c0 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 @@ -40,6 +40,7 @@ def build_create_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, access: Optional[Union[str, _models.PublicAccessType]] = None, @@ -52,7 +53,6 @@ def build_create_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -92,6 +92,7 @@ def build_create_request( def build_get_properties_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -101,7 +102,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -131,6 +131,7 @@ def build_get_properties_request( def build_delete_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, if_modified_since: Optional[datetime.datetime] = None, @@ -142,7 +143,6 @@ def build_delete_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["container"] = kwargs.pop("restype", _params.pop("restype", "container")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -176,6 +176,7 @@ def build_delete_request( def build_set_metadata_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, metadata: Optional[dict[str, str]] = None, @@ -188,7 +189,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -223,6 +223,7 @@ def build_set_metadata_request( def build_get_access_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -233,7 +234,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -264,6 +264,7 @@ def build_get_access_policy_request( def build_set_access_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, access: Optional[Union[str, _models.PublicAccessType]] = None, @@ -279,7 +280,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -318,6 +318,7 @@ def build_set_access_policy_request( def build_restore_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, deleted_container_name: Optional[str] = None, @@ -329,7 +330,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -367,6 +367,7 @@ def build_rename_request( url: str, *, source_container_name: str, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, source_lease_id: Optional[str] = None, @@ -377,7 +378,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -411,6 +411,7 @@ def build_submit_batch_request( *, content_length: int, content: IO[bytes], + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any @@ -421,7 +422,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -453,6 +453,7 @@ def build_submit_batch_request( def build_filter_blobs_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, where: Optional[str] = None, @@ -466,7 +467,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -503,6 +503,7 @@ def build_filter_blobs_request( def build_acquire_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, duration: Optional[int] = None, proposed_lease_id: Optional[str] = None, @@ -517,7 +518,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -556,6 +556,7 @@ def build_release_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -568,7 +569,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -604,6 +604,7 @@ def build_renew_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -616,7 +617,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -651,6 +651,7 @@ def build_renew_lease_request( def build_break_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, break_period: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, @@ -664,7 +665,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -702,6 +702,7 @@ def build_change_lease_request( *, lease_id: str, proposed_lease_id: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -714,7 +715,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -750,6 +750,7 @@ def build_change_lease_request( def build_list_blob_flat_segment_request( url: str, *, + version: str, prefix: Optional[str] = None, marker: Optional[str] = None, maxresults: Optional[int] = None, @@ -764,7 +765,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -804,6 +804,7 @@ def build_list_blob_hierarchy_segment_request( # pylint: disable=name-too-long url: str, *, delimiter: str, + version: str, prefix: Optional[str] = None, marker: Optional[str] = None, maxresults: Optional[int] = None, @@ -818,7 +819,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -856,14 +856,13 @@ def build_list_blob_hierarchy_segment_request( # pylint: disable=name-too-long def build_get_account_info_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["account"] = kwargs.pop("restype", _params.pop("restype", "account")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -969,6 +968,7 @@ def create( # pylint: disable=inconsistent-return-statements _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, access=access, @@ -976,7 +976,6 @@ def create( # pylint: disable=inconsistent-return-statements default_encryption_scope=_default_encryption_scope, prevent_encryption_scope_override=_prevent_encryption_scope_override, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1056,11 +1055,11 @@ def get_properties( # pylint: disable=inconsistent-return-statements _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1168,13 +1167,13 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, request_id_parameter=request_id_parameter, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1267,6 +1266,7 @@ def set_metadata( # pylint: disable=inconsistent-return-statements _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, metadata=metadata, @@ -1274,7 +1274,6 @@ def set_metadata( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1355,12 +1354,12 @@ def get_access_policy( _request = build_get_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1472,6 +1471,7 @@ def set_access_policy( # pylint: disable=inconsistent-return-statements _request = build_set_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, access=access, @@ -1481,7 +1481,6 @@ def set_access_policy( # pylint: disable=inconsistent-return-statements restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1563,13 +1562,13 @@ def restore( # pylint: disable=inconsistent-return-statements _request = build_restore_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, deleted_container_name=deleted_container_name, deleted_container_version=deleted_container_version, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1649,12 +1648,12 @@ def rename( # pylint: disable=inconsistent-return-statements _request = build_rename_request( url=self._config.url, source_container_name=source_container_name, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, source_lease_id=source_lease_id, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1737,12 +1736,12 @@ def submit_batch( _request = build_submit_batch_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, multipart_content_type=multipart_content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1845,6 +1844,7 @@ def filter_blobs( _request = build_filter_blobs_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, where=where, @@ -1853,7 +1853,6 @@ def filter_blobs( include=include, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1949,6 +1948,7 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -1958,7 +1958,6 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2047,6 +2046,7 @@ def release_lease( # pylint: disable=inconsistent-return-statements _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -2054,7 +2054,6 @@ def release_lease( # pylint: disable=inconsistent-return-statements comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2142,6 +2141,7 @@ def renew_lease( # pylint: disable=inconsistent-return-statements _request = build_renew_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -2149,7 +2149,6 @@ def renew_lease( # pylint: disable=inconsistent-return-statements comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2243,6 +2242,7 @@ def break_lease( # pylint: disable=inconsistent-return-statements _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, break_period=break_period, if_modified_since=_if_modified_since, @@ -2251,7 +2251,6 @@ def break_lease( # pylint: disable=inconsistent-return-statements comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2346,6 +2345,7 @@ def change_lease( # pylint: disable=inconsistent-return-statements url=self._config.url, lease_id=lease_id, proposed_lease_id=proposed_lease_id, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -2353,7 +2353,6 @@ def change_lease( # pylint: disable=inconsistent-return-statements comp=comp, restype=restype, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2456,6 +2455,7 @@ def list_blob_flat_segment( _request = build_list_blob_flat_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -2465,7 +2465,6 @@ def list_blob_flat_segment( request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2577,6 +2576,7 @@ def list_blob_hierarchy_segment( _request = build_list_blob_hierarchy_segment_request( url=self._config.url, delimiter=delimiter, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -2586,7 +2586,6 @@ def list_blob_hierarchy_segment( request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2659,11 +2658,11 @@ def get_account_info( # pylint: disable=inconsistent-return-statements _request = build_get_account_info_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) 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 f8add0471570..5b1d83541194 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 @@ -35,11 +35,12 @@ _SERIALIZER.client_side_validation = False -def build_create_request( +def build_create_request( # pylint: disable=too-many-locals url: str, *, content_length: int, blob_content_length: int, + version: str, timeout: Optional[int] = None, tier: Optional[Union[str, _models.PremiumPageBlobAccessTier]] = None, blob_content_type: Optional[str] = None, @@ -71,7 +72,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -156,11 +156,12 @@ def build_create_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_upload_pages_request( +def build_upload_pages_request( # pylint: disable=too-many-locals url: str, *, content_length: int, content: IO[bytes], + version: str, transactional_content_md5: Optional[bytes] = None, transactional_content_crc64: Optional[bytes] = None, timeout: Optional[int] = None, @@ -189,7 +190,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -268,10 +268,11 @@ def build_upload_pages_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, content=content, **kwargs) -def build_clear_pages_request( +def build_clear_pages_request( # pylint: disable=too-many-locals url: str, *, content_length: int, + version: str, timeout: Optional[int] = None, range: Optional[str] = None, lease_id: Optional[str] = None, @@ -295,7 +296,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -358,13 +358,14 @@ def build_clear_pages_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_upload_pages_from_url_request( +def build_upload_pages_from_url_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, source_url: str, source_range: str, content_length: int, range: str, + version: str, source_content_md5: Optional[bytes] = None, source_contentcrc64: Optional[bytes] = None, timeout: Optional[int] = None, @@ -398,7 +399,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -501,6 +501,7 @@ def build_upload_pages_from_url_request( def build_get_page_ranges_request( url: str, *, + version: str, snapshot: Optional[str] = None, timeout: Optional[int] = None, range: Optional[str] = None, @@ -519,7 +520,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -567,6 +567,7 @@ def build_get_page_ranges_request( def build_get_page_ranges_diff_request( url: str, *, + version: str, snapshot: Optional[str] = None, timeout: Optional[int] = None, prevsnapshot: Optional[str] = None, @@ -587,7 +588,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -640,6 +640,7 @@ def build_resize_request( url: str, *, blob_content_length: int, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, encryption_key: Optional[str] = None, @@ -658,7 +659,6 @@ def build_resize_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -710,6 +710,7 @@ def build_update_sequence_number_request( url: str, *, sequence_number_action: Union[str, _models.SequenceNumberActionType], + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, if_modified_since: Optional[datetime.datetime] = None, @@ -725,7 +726,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -771,6 +771,7 @@ def build_copy_incremental_request( url: str, *, copy_source: str, + version: str, timeout: Optional[int] = None, if_modified_since: Optional[datetime.datetime] = None, if_unmodified_since: Optional[datetime.datetime] = None, @@ -784,7 +785,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -840,7 +840,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def create( # pylint: disable=inconsistent-return-statements + def create( # pylint: disable=inconsistent-return-statements,too-many-locals self, content_length: int, blob_content_length: int, @@ -972,6 +972,7 @@ def create( # pylint: disable=inconsistent-return-statements url=self._config.url, content_length=content_length, blob_content_length=blob_content_length, + version=self._config.version, timeout=timeout, tier=tier, blob_content_type=_blob_content_type, @@ -998,7 +999,6 @@ def create( # pylint: disable=inconsistent-return-statements immutability_policy_mode=immutability_policy_mode, legal_hold=legal_hold, blob_type=blob_type, - version=self._config.version, headers=_headers, params=_params, ) @@ -1044,7 +1044,7 @@ def create( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def upload_pages( # pylint: disable=inconsistent-return-statements + def upload_pages( # pylint: disable=inconsistent-return-statements,too-many-locals self, content_length: int, body: IO[bytes], @@ -1161,6 +1161,7 @@ def upload_pages( # pylint: disable=inconsistent-return-statements _request = build_upload_pages_request( url=self._config.url, content_length=content_length, + version=self._config.version, transactional_content_md5=transactional_content_md5, transactional_content_crc64=transactional_content_crc64, timeout=timeout, @@ -1184,7 +1185,6 @@ def upload_pages( # pylint: disable=inconsistent-return-statements comp=comp, page_write=page_write, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1334,6 +1334,7 @@ def clear_pages( # pylint: disable=inconsistent-return-statements _request = build_clear_pages_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, range=range, lease_id=_lease_id, @@ -1352,7 +1353,6 @@ def clear_pages( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, comp=comp, page_write=page_write, - version=self._config.version, headers=_headers, params=_params, ) @@ -1394,7 +1394,7 @@ def clear_pages( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def upload_pages_from_url( # pylint: disable=inconsistent-return-statements + def upload_pages_from_url( # pylint: disable=inconsistent-return-statements,too-many-locals self, source_url: str, source_range: str, @@ -1406,15 +1406,13 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements request_id_parameter: Optional[str] = None, copy_source_authorization: Optional[str] = None, file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None, - source_encryption_key: Optional[str] = None, - source_encryption_key_sha256: Optional[str] = None, - source_encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None, cpk_info: Optional[_models.CpkInfo] = None, cpk_scope_info: Optional[_models.CpkScopeInfo] = None, lease_access_conditions: Optional[_models.LeaseAccessConditions] = None, sequence_number_access_conditions: Optional[_models.SequenceNumberAccessConditions] = None, modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None, source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None, + source_cpk_info: Optional[_models.SourceCpkInfo] = None, **kwargs: Any ) -> None: """The Upload Pages operation writes a range of pages to a page blob where the contents are read @@ -1450,17 +1448,6 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements :type copy_source_authorization: str :param file_request_intent: Valid value is backup. "backup" Default value is None. :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent - :param source_encryption_key: Optional. Specifies the source encryption key to use to encrypt - the source data provided in the request. Default value is None. - :type source_encryption_key: str - :param source_encryption_key_sha256: The SHA-256 hash of the provided source encryption key. - Must be provided if the x-ms-source-encryption-key header is provided. Default value is None. - :type source_encryption_key_sha256: str - :param source_encryption_algorithm: The algorithm used to produce the source encryption key - hash. Currently, the only accepted value is "AES256". Must be provided if the - x-ms-source-encryption-key is provided. Known values are: "None" and "AES256". Default value is - None. - :type source_encryption_algorithm: str or ~azure.storage.blob.models.EncryptionAlgorithmType :param cpk_info: Parameter group. Default value is None. :type cpk_info: ~azure.storage.blob.models.CpkInfo :param cpk_scope_info: Parameter group. Default value is None. @@ -1475,6 +1462,8 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements :param source_modified_access_conditions: Parameter group. Default value is None. :type source_modified_access_conditions: ~azure.storage.blob.models.SourceModifiedAccessConditions + :param source_cpk_info: Parameter group. Default value is None. + :type source_cpk_info: ~azure.storage.blob.models.SourceCpkInfo :return: None or the result of cls(response) :rtype: None :raises ~azure.core.exceptions.HttpResponseError: @@ -1511,6 +1500,9 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements _source_if_unmodified_since = None _source_if_match = None _source_if_none_match = None + _source_encryption_key = None + _source_encryption_key_sha256 = None + _source_encryption_algorithm = None if cpk_info is not None: _encryption_algorithm = cpk_info.encryption_algorithm _encryption_key = cpk_info.encryption_key @@ -1536,6 +1528,10 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements _source_if_modified_since = source_modified_access_conditions.source_if_modified_since _source_if_none_match = source_modified_access_conditions.source_if_none_match _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + if source_cpk_info is not None: + _source_encryption_algorithm = source_cpk_info.source_encryption_algorithm + _source_encryption_key = source_cpk_info.source_encryption_key + _source_encryption_key_sha256 = source_cpk_info.source_encryption_key_sha256 _request = build_upload_pages_from_url_request( url=self._config.url, @@ -1543,6 +1539,7 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements source_range=source_range, content_length=content_length, range=range, + version=self._config.version, source_content_md5=source_content_md5, source_contentcrc64=source_contentcrc64, timeout=timeout, @@ -1566,12 +1563,11 @@ def upload_pages_from_url( # pylint: disable=inconsistent-return-statements request_id_parameter=request_id_parameter, copy_source_authorization=copy_source_authorization, file_request_intent=file_request_intent, - source_encryption_key=source_encryption_key, - source_encryption_key_sha256=source_encryption_key_sha256, - source_encryption_algorithm=source_encryption_algorithm, + source_encryption_key=_source_encryption_key, + source_encryption_key_sha256=_source_encryption_key_sha256, + source_encryption_algorithm=_source_encryption_algorithm, comp=comp, page_write=page_write, - version=self._config.version, headers=_headers, params=_params, ) @@ -1704,6 +1700,7 @@ def get_page_ranges( _request = build_get_page_ranges_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, timeout=timeout, range=range, @@ -1717,7 +1714,6 @@ def get_page_ranges( marker=marker, maxresults=maxresults, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1858,6 +1854,7 @@ def get_page_ranges_diff( _request = build_get_page_ranges_diff_request( url=self._config.url, + version=self._config.version, snapshot=snapshot, timeout=timeout, prevsnapshot=prevsnapshot, @@ -1873,7 +1870,6 @@ def get_page_ranges_diff( marker=marker, maxresults=maxresults, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1994,6 +1990,7 @@ def resize( # pylint: disable=inconsistent-return-statements _request = build_resize_request( url=self._config.url, blob_content_length=blob_content_length, + version=self._config.version, timeout=timeout, lease_id=_lease_id, encryption_key=_encryption_key, @@ -2007,7 +2004,6 @@ def resize( # pylint: disable=inconsistent-return-statements if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2115,6 +2111,7 @@ def update_sequence_number( # pylint: disable=inconsistent-return-statements _request = build_update_sequence_number_request( url=self._config.url, sequence_number_action=sequence_number_action, + version=self._config.version, timeout=timeout, lease_id=_lease_id, if_modified_since=_if_modified_since, @@ -2125,7 +2122,6 @@ def update_sequence_number( # pylint: disable=inconsistent-return-statements blob_sequence_number=blob_sequence_number, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2226,6 +2222,7 @@ def copy_incremental( # pylint: disable=inconsistent-return-statements _request = build_copy_incremental_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, if_modified_since=_if_modified_since, if_unmodified_since=_if_unmodified_since, @@ -2234,7 +2231,6 @@ def copy_incremental( # pylint: disable=inconsistent-return-statements if_tags=_if_tags, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) 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 c9b170579b9f..5edf48262218 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 @@ -37,7 +37,13 @@ def build_set_properties_request( - url: str, *, content: Any, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, + *, + content: Any, + version: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -45,7 +51,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -74,14 +79,13 @@ def build_set_properties_request( def build_get_properties_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -108,14 +112,13 @@ def build_get_properties_request( def build_get_statistics_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service")) comp: Literal["stats"] = kwargs.pop("comp", _params.pop("comp", "stats")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -144,6 +147,7 @@ def build_get_statistics_request( def build_list_containers_segment_request( url: str, *, + version: str, prefix: Optional[str] = None, marker: Optional[str] = None, maxresults: Optional[int] = None, @@ -156,7 +160,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -190,7 +193,13 @@ def build_list_containers_segment_request( def build_get_user_delegation_key_request( - url: str, *, content: Any, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, + *, + content: Any, + version: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -198,7 +207,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -227,14 +235,13 @@ def build_get_user_delegation_key_request( def build_get_account_info_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["account"] = kwargs.pop("restype", _params.pop("restype", "account")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -265,6 +272,7 @@ def build_submit_batch_request( *, content_length: int, content: IO[bytes], + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any @@ -274,7 +282,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -305,6 +312,7 @@ def build_submit_batch_request( def build_filter_blobs_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, where: Optional[str] = None, @@ -317,7 +325,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -415,12 +422,12 @@ def set_properties( # pylint: disable=inconsistent-return-statements _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -489,11 +496,11 @@ def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -566,11 +573,11 @@ def get_statistics( _request = build_get_statistics_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -669,6 +676,7 @@ def list_containers_segment( _request = build_list_containers_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -676,7 +684,6 @@ def list_containers_segment( timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -757,12 +764,12 @@ def get_user_delegation_key( _request = build_get_user_delegation_key_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -835,11 +842,11 @@ def get_account_info( # pylint: disable=inconsistent-return-statements _request = build_get_account_info_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -924,11 +931,11 @@ def submit_batch( _request = build_submit_batch_request( url=self._config.url, content_length=content_length, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, multipart_content_type=multipart_content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1031,6 +1038,7 @@ def filter_blobs( _request = build_filter_blobs_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, where=where, @@ -1038,7 +1046,6 @@ def filter_blobs( maxresults=maxresults, include=include, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) From ababf6dc3c0f4a7004e9dc83cd230e8f3f585ffa Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:33:38 -0500 Subject: [PATCH 06/19] Datalake code gen --- .../_generated/_utils/serialization.py | 17 ++++++++++++++--- .../aio/operations/_path_operations.py | 8 ++++---- .../_generated/operations/_path_operations.py | 16 ++++++++-------- .../swagger/README.md | 2 +- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/_utils/serialization.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/_utils/serialization.py index ff543ed937ff..6da830e0cf4a 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/_utils/serialization.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/_utils/serialization.py @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/aio/operations/_path_operations.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/aio/operations/_path_operations.py index 506fbc5fcdac..bb1ce5ce7e4e 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/aio/operations/_path_operations.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/aio/operations/_path_operations.py @@ -69,7 +69,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, request_id_parameter: Optional[str] = None, timeout: Optional[int] = None, @@ -329,7 +329,7 @@ async def create( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def update( + async def update( # pylint: disable=too-many-locals self, action: Union[str, _models.PathUpdateAction], mode: Union[str, _models.PathSetAccessControlRecursiveMode], @@ -1463,7 +1463,7 @@ async def set_access_control_recursive( return deserialized # type: ignore @distributed_trace_async - async def flush_data( + async def flush_data( # pylint: disable=too-many-locals self, timeout: Optional[int] = None, position: Optional[int] = None, @@ -1662,7 +1662,7 @@ async def flush_data( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def append_data( + async def append_data( # pylint: disable=too-many-locals self, body: IO[bytes], position: Optional[int] = None, diff --git a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/operations/_path_operations.py b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/operations/_path_operations.py index 9175e964f819..ccff697bed0e 100644 --- a/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/operations/_path_operations.py +++ b/sdk/storage/azure-storage-file-datalake/azure/storage/filedatalake/_generated/operations/_path_operations.py @@ -37,7 +37,7 @@ _SERIALIZER.client_side_validation = False -def build_create_request( +def build_create_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, request_id_parameter: Optional[str] = None, @@ -176,7 +176,7 @@ def build_create_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_update_request( +def build_update_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, action: Union[str, _models.PathUpdateAction], @@ -653,7 +653,7 @@ def build_set_access_control_recursive_request( # pylint: disable=name-too-long return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_flush_data_request( +def build_flush_data_request( # pylint: disable=too-many-locals url: str, *, timeout: Optional[int] = None, @@ -754,7 +754,7 @@ def build_flush_data_request( return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) -def build_append_data_request( +def build_append_data_request( # pylint: disable=too-many-locals url: str, *, content: IO[bytes], @@ -946,7 +946,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def create( # pylint: disable=inconsistent-return-statements + def create( # pylint: disable=inconsistent-return-statements,too-many-locals self, request_id_parameter: Optional[str] = None, timeout: Optional[int] = None, @@ -1206,7 +1206,7 @@ def create( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def update( + def update( # pylint: disable=too-many-locals self, action: Union[str, _models.PathUpdateAction], mode: Union[str, _models.PathSetAccessControlRecursiveMode], @@ -2340,7 +2340,7 @@ def set_access_control_recursive( return deserialized # type: ignore @distributed_trace - def flush_data( # pylint: disable=inconsistent-return-statements + def flush_data( # pylint: disable=inconsistent-return-statements,too-many-locals self, timeout: Optional[int] = None, position: Optional[int] = None, @@ -2539,7 +2539,7 @@ def flush_data( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def append_data( # pylint: disable=inconsistent-return-statements + def append_data( # pylint: disable=inconsistent-return-statements,too-many-locals self, body: IO[bytes], position: Optional[int] = None, diff --git a/sdk/storage/azure-storage-file-datalake/swagger/README.md b/sdk/storage/azure-storage-file-datalake/swagger/README.md index f1ad7710ebfe..006da7eae4d3 100644 --- a/sdk/storage/azure-storage-file-datalake/swagger/README.md +++ b/sdk/storage/azure-storage-file-datalake/swagger/README.md @@ -16,7 +16,7 @@ autorest --v3 --python ### Settings ``` yaml -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Azure.Storage.Files.DataLake/stable/2026-04-06/DataLakeStorage.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Azure.Storage.Files.DataLake/stable/2026-02-06/DataLakeStorage.json output-folder: ../azure/storage/filedatalake/_generated namespace: azure.storage.filedatalake no-namespace-folders: true From 6f999cfb82b71f3f3d7e0e2a25ccf08185784817 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:35:22 -0500 Subject: [PATCH 07/19] File share code gen --- .../_generated/_azure_file_storage.py | 7 +- .../fileshare/_generated/_configuration.py | 11 +- .../_generated/_utils/serialization.py | 17 ++- .../_generated/aio/_azure_file_storage.py | 7 +- .../_generated/aio/_configuration.py | 11 +- .../aio/operations/_directory_operations.py | 24 ++--- .../aio/operations/_file_operations.py | 52 ++++----- .../aio/operations/_service_operations.py | 8 +- .../aio/operations/_share_operations.py | 38 +++---- .../operations/_directory_operations.py | 44 ++++---- .../_generated/operations/_file_operations.py | 102 +++++++++--------- .../operations/_service_operations.py | 23 ++-- .../operations/_share_operations.py | 72 ++++++------- 13 files changed, 218 insertions(+), 198 deletions(-) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_azure_file_storage.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_azure_file_storage.py index 41b09ccfff1e..cea1a9e2ac4c 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_azure_file_storage.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_azure_file_storage.py @@ -31,6 +31,8 @@ class AzureFileStorage: # pylint: disable=client-accepts-api-version-keyword :vartype directory: azure.storage.fileshare.operations.DirectoryOperations :ivar file: FileOperations operations :vartype file: azure.storage.fileshare.operations.FileOperations + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :param url: The URL of the service account, share, directory or file that is the target of the desired operation. Required. :type url: str @@ -44,9 +46,6 @@ class AzureFileStorage: # pylint: disable=client-accepts-api-version-keyword :param allow_source_trailing_dot: If true, the trailing dot will not be trimmed from the source URI. Default value is None. :type allow_source_trailing_dot: bool - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str :keyword file_range_write_from_url: Only update is supported: - Update: Writes the bytes downloaded from the source url into the specified range. Default value is "update". Note that overriding this default value may result in unsupported behavior. @@ -55,6 +54,7 @@ class AzureFileStorage: # pylint: disable=client-accepts-api-version-keyword def __init__( # pylint: disable=missing-client-constructor-parameter-credential self, + version: str, url: str, base_url: str = "", file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -63,6 +63,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential **kwargs: Any ) -> None: self._config = AzureFileStorageConfiguration( + version=version, url=url, file_request_intent=file_request_intent, allow_trailing_dot=allow_trailing_dot, diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_configuration.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_configuration.py index a3f518a330c7..51f09f3c22f7 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_configuration.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_configuration.py @@ -21,6 +21,8 @@ class AzureFileStorageConfiguration: # pylint: disable=too-many-instance-attrib Note that all parameters used to create this instance are saved as instance attributes. + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :param url: The URL of the service account, share, directory or file that is the target of the desired operation. Required. :type url: str @@ -32,9 +34,6 @@ class AzureFileStorageConfiguration: # pylint: disable=too-many-instance-attrib :param allow_source_trailing_dot: If true, the trailing dot will not be trimmed from the source URI. Default value is None. :type allow_source_trailing_dot: bool - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str :keyword file_range_write_from_url: Only update is supported: - Update: Writes the bytes downloaded from the source url into the specified range. Default value is "update". Note that overriding this default value may result in unsupported behavior. @@ -43,23 +42,25 @@ class AzureFileStorageConfiguration: # pylint: disable=too-many-instance-attrib def __init__( self, + version: str, url: str, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, allow_trailing_dot: Optional[bool] = None, allow_source_trailing_dot: Optional[bool] = None, **kwargs: Any ) -> None: - version: Literal["2026-04-06"] = kwargs.pop("version", "2026-04-06") file_range_write_from_url: Literal["update"] = kwargs.pop("file_range_write_from_url", "update") + if version is None: + raise ValueError("Parameter 'version' must not be None.") if url is None: raise ValueError("Parameter 'url' must not be None.") + self.version = version self.url = url self.file_request_intent = file_request_intent self.allow_trailing_dot = allow_trailing_dot self.allow_source_trailing_dot = allow_source_trailing_dot - self.version = version self.file_range_write_from_url = file_range_write_from_url kwargs.setdefault("sdk_moniker", "azurefilestorage/{}".format(VERSION)) self.polling_interval = kwargs.get("polling_interval", 30) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_utils/serialization.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_utils/serialization.py index ff543ed937ff..6da830e0cf4a 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_utils/serialization.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/_utils/serialization.py @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_azure_file_storage.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_azure_file_storage.py index d98fd422f1ba..4aac6aa9a1d4 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_azure_file_storage.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_azure_file_storage.py @@ -31,6 +31,8 @@ class AzureFileStorage: # pylint: disable=client-accepts-api-version-keyword :vartype directory: azure.storage.fileshare.aio.operations.DirectoryOperations :ivar file: FileOperations operations :vartype file: azure.storage.fileshare.aio.operations.FileOperations + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :param url: The URL of the service account, share, directory or file that is the target of the desired operation. Required. :type url: str @@ -44,9 +46,6 @@ class AzureFileStorage: # pylint: disable=client-accepts-api-version-keyword :param allow_source_trailing_dot: If true, the trailing dot will not be trimmed from the source URI. Default value is None. :type allow_source_trailing_dot: bool - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str :keyword file_range_write_from_url: Only update is supported: - Update: Writes the bytes downloaded from the source url into the specified range. Default value is "update". Note that overriding this default value may result in unsupported behavior. @@ -55,6 +54,7 @@ class AzureFileStorage: # pylint: disable=client-accepts-api-version-keyword def __init__( # pylint: disable=missing-client-constructor-parameter-credential self, + version: str, url: str, base_url: str = "", file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -63,6 +63,7 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential **kwargs: Any ) -> None: self._config = AzureFileStorageConfiguration( + version=version, url=url, file_request_intent=file_request_intent, allow_trailing_dot=allow_trailing_dot, diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_configuration.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_configuration.py index 2e958f0ad919..bc7aa571cdd4 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_configuration.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/_configuration.py @@ -21,6 +21,8 @@ class AzureFileStorageConfiguration: # pylint: disable=too-many-instance-attrib Note that all parameters used to create this instance are saved as instance attributes. + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :param url: The URL of the service account, share, directory or file that is the target of the desired operation. Required. :type url: str @@ -32,9 +34,6 @@ class AzureFileStorageConfiguration: # pylint: disable=too-many-instance-attrib :param allow_source_trailing_dot: If true, the trailing dot will not be trimmed from the source URI. Default value is None. :type allow_source_trailing_dot: bool - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str :keyword file_range_write_from_url: Only update is supported: - Update: Writes the bytes downloaded from the source url into the specified range. Default value is "update". Note that overriding this default value may result in unsupported behavior. @@ -43,23 +42,25 @@ class AzureFileStorageConfiguration: # pylint: disable=too-many-instance-attrib def __init__( self, + version: str, url: str, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, allow_trailing_dot: Optional[bool] = None, allow_source_trailing_dot: Optional[bool] = None, **kwargs: Any ) -> None: - version: Literal["2026-04-06"] = kwargs.pop("version", "2026-04-06") file_range_write_from_url: Literal["update"] = kwargs.pop("file_range_write_from_url", "update") + if version is None: + raise ValueError("Parameter 'version' must not be None.") if url is None: raise ValueError("Parameter 'url' must not be None.") + self.version = version self.url = url self.file_request_intent = file_request_intent self.allow_trailing_dot = allow_trailing_dot self.allow_source_trailing_dot = allow_source_trailing_dot - self.version = version self.file_range_write_from_url = file_range_write_from_url kwargs.setdefault("sdk_moniker", "azurefilestorage/{}".format(VERSION)) self.polling_interval = kwargs.get("polling_interval", 30) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_directory_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_directory_operations.py index cba4685c7443..b83ffd8a6223 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_directory_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_directory_operations.py @@ -62,7 +62,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, @@ -152,6 +152,7 @@ async def create( _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, file_permission=file_permission, @@ -168,7 +169,6 @@ async def create( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -259,12 +259,12 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -350,11 +350,11 @@ async def delete(self, timeout: Optional[int] = None, **kwargs: Any) -> None: _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -384,7 +384,7 @@ async def delete(self, timeout: Optional[int] = None, **kwargs: Any) -> None: return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def set_properties( + async def set_properties( # pylint: disable=too-many-locals self, timeout: Optional[int] = None, file_permission: str = "inherit", @@ -465,6 +465,7 @@ async def set_properties( _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_permission=file_permission, file_permission_format=file_permission_format, @@ -480,7 +481,6 @@ async def set_properties( file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -569,13 +569,13 @@ async def set_metadata( _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -669,6 +669,7 @@ async def list_files_and_directories_segment( _request = build_list_files_and_directories_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, sharesnapshot=sharesnapshot, marker=marker, @@ -680,7 +681,6 @@ async def list_files_and_directories_segment( file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -766,6 +766,7 @@ async def list_handles( _request = build_list_handles_request( url=self._config.url, + version=self._config.version, marker=marker, maxresults=maxresults, timeout=timeout, @@ -774,7 +775,6 @@ async def list_handles( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -860,6 +860,7 @@ async def force_close_handles( _request = build_force_close_handles_request( url=self._config.url, handle_id=handle_id, + version=self._config.version, timeout=timeout, marker=marker, sharesnapshot=sharesnapshot, @@ -867,7 +868,6 @@ async def force_close_handles( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -904,7 +904,7 @@ async def force_close_handles( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def rename( + async def rename( # pylint: disable=too-many-locals self, rename_source: str, timeout: Optional[int] = None, @@ -1007,6 +1007,7 @@ async def rename( _request = build_rename_request( url=self._config.url, rename_source=rename_source, + version=self._config.version, timeout=timeout, replace_if_exists=replace_if_exists, ignore_read_only=ignore_read_only, @@ -1025,7 +1026,6 @@ async def rename( file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_file_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_file_operations.py index e0296f2ea2f5..76311af25265 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_file_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_file_operations.py @@ -76,7 +76,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, file_content_length: int, timeout: Optional[int] = None, @@ -216,6 +216,7 @@ async def create( _request = build_create_request( url=self._config.url, file_content_length=file_content_length, + version=self._config.version, timeout=timeout, file_content_type=_file_content_type, file_content_encoding=_file_content_encoding, @@ -243,7 +244,6 @@ async def create( file_request_intent=self._config.file_request_intent, file_type_constant=file_type_constant, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -352,6 +352,7 @@ async def download( _request = build_download_request( url=self._config.url, + version=self._config.version, timeout=timeout, range=range, range_get_content_md5=range_get_content_md5, @@ -359,7 +360,6 @@ async def download( lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -497,12 +497,12 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -619,11 +619,11 @@ async def delete( _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -654,7 +654,7 @@ async def delete( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def set_http_headers( + async def set_http_headers( # pylint: disable=too-many-locals self, timeout: Optional[int] = None, file_content_length: Optional[int] = None, @@ -762,6 +762,7 @@ async def set_http_headers( _request = build_set_http_headers_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_content_length=file_content_length, file_content_type=_file_content_type, @@ -784,7 +785,6 @@ async def set_http_headers( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -883,13 +883,13 @@ async def set_metadata( _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -972,6 +972,7 @@ async def acquire_lease( _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -980,7 +981,6 @@ async def acquire_lease( file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1055,13 +1055,13 @@ async def release_lease( _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1144,6 +1144,7 @@ async def change_lease( _request = build_change_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, proposed_lease_id=proposed_lease_id, request_id_parameter=request_id_parameter, @@ -1151,7 +1152,6 @@ async def change_lease( file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1233,6 +1233,7 @@ async def break_lease( _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, @@ -1240,7 +1241,6 @@ async def break_lease( file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -1276,7 +1276,7 @@ async def break_lease( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def upload_range( + async def upload_range( # pylint: disable=too-many-locals self, range: str, content_length: int, @@ -1364,6 +1364,7 @@ async def upload_range( url=self._config.url, range=range, content_length=content_length, + version=self._config.version, timeout=timeout, file_range_write=file_range_write, content_md5=content_md5, @@ -1375,7 +1376,6 @@ async def upload_range( file_request_intent=self._config.file_request_intent, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1501,6 +1501,7 @@ async def upload_range_from_url( range=range, copy_source=copy_source, content_length=content_length, + version=self._config.version, timeout=timeout, source_range=source_range, source_content_crc64=source_content_crc64, @@ -1514,7 +1515,6 @@ async def upload_range_from_url( file_request_intent=self._config.file_request_intent, comp=comp, file_range_write_from_url=self._config.file_range_write_from_url, - version=self._config.version, headers=_headers, params=_params, ) @@ -1614,6 +1614,7 @@ async def get_range_list( _request = build_get_range_list_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, prevsharesnapshot=prevsharesnapshot, timeout=timeout, @@ -1623,7 +1624,6 @@ async def get_range_list( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1660,7 +1660,7 @@ async def get_range_list( return deserialized # type: ignore @distributed_trace_async - async def start_copy( + async def start_copy( # pylint: disable=too-many-locals self, copy_source: str, timeout: Optional[int] = None, @@ -1775,6 +1775,7 @@ async def start_copy( _request = build_start_copy_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, metadata=metadata, file_permission=file_permission, @@ -1796,7 +1797,6 @@ async def start_copy( allow_trailing_dot=self._config.allow_trailing_dot, allow_source_trailing_dot=self._config.allow_source_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -1878,13 +1878,13 @@ async def abort_copy( _request = build_abort_copy_request( url=self._config.url, copy_id=copy_id, + version=self._config.version, timeout=timeout, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, copy_action_abort_constant=copy_action_abort_constant, - version=self._config.version, headers=_headers, params=_params, ) @@ -1961,6 +1961,7 @@ async def list_handles( _request = build_list_handles_request( url=self._config.url, + version=self._config.version, marker=marker, maxresults=maxresults, timeout=timeout, @@ -1968,7 +1969,6 @@ async def list_handles( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2050,13 +2050,13 @@ async def force_close_handles( _request = build_force_close_handles_request( url=self._config.url, handle_id=handle_id, + version=self._config.version, timeout=timeout, marker=marker, sharesnapshot=sharesnapshot, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2093,7 +2093,7 @@ async def force_close_handles( return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace_async - async def rename( + async def rename( # pylint: disable=too-many-locals self, rename_source: str, timeout: Optional[int] = None, @@ -2201,6 +2201,7 @@ async def rename( _request = build_rename_request( url=self._config.url, rename_source=rename_source, + version=self._config.version, timeout=timeout, replace_if_exists=replace_if_exists, ignore_read_only=ignore_read_only, @@ -2219,7 +2220,6 @@ async def rename( allow_source_trailing_dot=self._config.allow_source_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2341,6 +2341,7 @@ async def create_symbolic_link( _request = build_create_symbolic_link_request( url=self._config.url, link_text=link_text, + version=self._config.version, timeout=timeout, metadata=metadata, file_creation_time=file_creation_time, @@ -2351,7 +2352,6 @@ async def create_symbolic_link( group=group, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -2442,12 +2442,12 @@ async def get_symbolic_link( _request = build_get_symbolic_link_request( url=self._config.url, + version=self._config.version, timeout=timeout, sharesnapshot=sharesnapshot, request_id_parameter=request_id_parameter, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -2534,13 +2534,13 @@ async def create_hard_link( _request = build_create_hard_link_request( url=self._config.url, target_file=target_file, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, file_type_constant=file_type_constant, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_service_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_service_operations.py index 212bf8430546..4d7dafcf5895 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_service_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_service_operations.py @@ -94,12 +94,12 @@ async def set_properties( _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -159,11 +159,11 @@ async def get_properties(self, timeout: Optional[int] = None, **kwargs: Any) -> _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -248,6 +248,7 @@ async def list_shares_segment( _request = build_list_shares_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -255,7 +256,6 @@ async def list_shares_segment( timeout=timeout, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -333,12 +333,12 @@ async def get_user_delegation_key( _request = build_get_user_delegation_key_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_share_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_share_operations.py index 491579cde044..39daa0cfeb65 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_share_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/aio/operations/_share_operations.py @@ -71,7 +71,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace_async - async def create( + async def create( # pylint: disable=too-many-locals self, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, @@ -157,6 +157,7 @@ async def create( _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, quota=quota, @@ -172,7 +173,6 @@ async def create( enable_smb_directory_lease=enable_smb_directory_lease, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -261,12 +261,12 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -404,13 +404,13 @@ async def delete( _request = build_delete_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, delete_snapshots=delete_snapshots, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -500,6 +500,7 @@ async def acquire_lease( _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -509,7 +510,6 @@ async def acquire_lease( comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -593,6 +593,7 @@ async def release_lease( _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, sharesnapshot=sharesnapshot, request_id_parameter=request_id_parameter, @@ -600,7 +601,6 @@ async def release_lease( comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -688,6 +688,7 @@ async def change_lease( _request = build_change_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, proposed_lease_id=proposed_lease_id, sharesnapshot=sharesnapshot, @@ -696,7 +697,6 @@ async def change_lease( comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -780,6 +780,7 @@ async def renew_lease( _request = build_renew_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, sharesnapshot=sharesnapshot, request_id_parameter=request_id_parameter, @@ -787,7 +788,6 @@ async def renew_lease( comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -883,6 +883,7 @@ async def break_lease( _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, break_period=break_period, lease_id=_lease_id, @@ -892,7 +893,6 @@ async def break_lease( comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -963,12 +963,12 @@ async def create_snapshot( _request = build_create_snapshot_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1096,12 +1096,12 @@ async def create_permission( _request = build_create_permission_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, json=_json, content=_content, headers=_headers, @@ -1181,12 +1181,12 @@ async def get_permission( _request = build_get_permission_request( url=self._config.url, file_permission_key=file_permission_key, + version=self._config.version, file_permission_format=file_permission_format, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1220,7 +1220,7 @@ async def get_permission( return deserialized # type: ignore @distributed_trace_async - async def set_properties( + async def set_properties( # pylint: disable=too-many-locals self, timeout: Optional[int] = None, quota: Optional[int] = None, @@ -1306,6 +1306,7 @@ async def set_properties( _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, quota=quota, access_tier=access_tier, @@ -1321,7 +1322,6 @@ async def set_properties( file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1419,13 +1419,13 @@ async def set_metadata( _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1497,12 +1497,12 @@ async def get_access_policy( _request = build_get_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1590,13 +1590,13 @@ async def set_access_policy( _request = build_set_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1669,12 +1669,12 @@ async def get_statistics( _request = build_get_statistics_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1756,6 +1756,7 @@ async def restore( _request = build_restore_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, deleted_share_name=deleted_share_name, @@ -1763,7 +1764,6 @@ async def restore( file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_directory_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_directory_operations.py index 1faa52afcd28..157426b206fe 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_directory_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_directory_operations.py @@ -37,6 +37,7 @@ def build_create_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, file_permission: str = "inherit", @@ -58,7 +59,6 @@ def build_create_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -116,6 +116,7 @@ def build_create_request( def build_get_properties_request( url: str, *, + version: str, sharesnapshot: Optional[str] = None, timeout: Optional[int] = None, allow_trailing_dot: Optional[bool] = None, @@ -126,7 +127,6 @@ def build_get_properties_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -158,6 +158,7 @@ def build_get_properties_request( def build_delete_request( url: str, *, + version: str, timeout: Optional[int] = None, allow_trailing_dot: Optional[bool] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -167,7 +168,6 @@ def build_delete_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -197,6 +197,7 @@ def build_delete_request( def build_set_properties_request( url: str, *, + version: str, timeout: Optional[int] = None, file_permission: str = "inherit", file_permission_format: Optional[Union[str, _models.FilePermissionFormat]] = None, @@ -217,7 +218,6 @@ def build_set_properties_request( restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -270,6 +270,7 @@ def build_set_properties_request( def build_set_metadata_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, allow_trailing_dot: Optional[bool] = None, @@ -281,7 +282,6 @@ def build_set_metadata_request( restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) comp: Literal["metadata"] = kwargs.pop("comp", _params.pop("comp", "metadata")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -314,6 +314,7 @@ def build_set_metadata_request( def build_list_files_and_directories_segment_request( # pylint: disable=name-too-long url: str, *, + version: str, prefix: Optional[str] = None, sharesnapshot: Optional[str] = None, marker: Optional[str] = None, @@ -330,7 +331,6 @@ def build_list_files_and_directories_segment_request( # pylint: disable=name-to restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) comp: Literal["list"] = kwargs.pop("comp", _params.pop("comp", "list")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -373,6 +373,7 @@ def build_list_files_and_directories_segment_request( # pylint: disable=name-to def build_list_handles_request( url: str, *, + version: str, marker: Optional[str] = None, maxresults: Optional[int] = None, timeout: Optional[int] = None, @@ -386,7 +387,6 @@ def build_list_handles_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["listhandles"] = kwargs.pop("comp", _params.pop("comp", "listhandles")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -425,6 +425,7 @@ def build_force_close_handles_request( url: str, *, handle_id: str, + version: str, timeout: Optional[int] = None, marker: Optional[str] = None, sharesnapshot: Optional[str] = None, @@ -437,7 +438,6 @@ def build_force_close_handles_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["forceclosehandles"] = kwargs.pop("comp", _params.pop("comp", "forceclosehandles")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -471,10 +471,11 @@ def build_force_close_handles_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_rename_request( +def build_rename_request( # pylint: disable=too-many-locals url: str, *, rename_source: str, + version: str, timeout: Optional[int] = None, replace_if_exists: Optional[bool] = None, ignore_read_only: Optional[bool] = None, @@ -498,7 +499,6 @@ def build_rename_request( restype: Literal["directory"] = kwargs.pop("restype", _params.pop("restype", "directory")) comp: Literal["rename"] = kwargs.pop("comp", _params.pop("comp", "rename")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -579,7 +579,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def create( # pylint: disable=inconsistent-return-statements + def create( # pylint: disable=inconsistent-return-statements,too-many-locals self, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, @@ -669,6 +669,7 @@ def create( # pylint: disable=inconsistent-return-statements _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, file_permission=file_permission, @@ -685,7 +686,6 @@ def create( # pylint: disable=inconsistent-return-statements allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -776,12 +776,12 @@ def get_properties( # pylint: disable=inconsistent-return-statements _request = build_get_properties_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -869,11 +869,11 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -903,7 +903,7 @@ def delete( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def set_properties( # pylint: disable=inconsistent-return-statements + def set_properties( # pylint: disable=inconsistent-return-statements,too-many-locals self, timeout: Optional[int] = None, file_permission: str = "inherit", @@ -984,6 +984,7 @@ def set_properties( # pylint: disable=inconsistent-return-statements _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_permission=file_permission, file_permission_format=file_permission_format, @@ -999,7 +1000,6 @@ def set_properties( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1088,13 +1088,13 @@ def set_metadata( # pylint: disable=inconsistent-return-statements _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1188,6 +1188,7 @@ def list_files_and_directories_segment( _request = build_list_files_and_directories_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, sharesnapshot=sharesnapshot, marker=marker, @@ -1199,7 +1200,6 @@ def list_files_and_directories_segment( file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1285,6 +1285,7 @@ def list_handles( _request = build_list_handles_request( url=self._config.url, + version=self._config.version, marker=marker, maxresults=maxresults, timeout=timeout, @@ -1293,7 +1294,6 @@ def list_handles( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1379,6 +1379,7 @@ def force_close_handles( # pylint: disable=inconsistent-return-statements _request = build_force_close_handles_request( url=self._config.url, handle_id=handle_id, + version=self._config.version, timeout=timeout, marker=marker, sharesnapshot=sharesnapshot, @@ -1386,7 +1387,6 @@ def force_close_handles( # pylint: disable=inconsistent-return-statements allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1423,7 +1423,7 @@ def force_close_handles( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def rename( # pylint: disable=inconsistent-return-statements + def rename( # pylint: disable=inconsistent-return-statements,too-many-locals self, rename_source: str, timeout: Optional[int] = None, @@ -1526,6 +1526,7 @@ def rename( # pylint: disable=inconsistent-return-statements _request = build_rename_request( url=self._config.url, rename_source=rename_source, + version=self._config.version, timeout=timeout, replace_if_exists=replace_if_exists, ignore_read_only=ignore_read_only, @@ -1544,7 +1545,6 @@ def rename( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_file_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_file_operations.py index ddc3639bc4d2..176dfe9bda33 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_file_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_file_operations.py @@ -36,10 +36,11 @@ _SERIALIZER.client_side_validation = False -def build_create_request( +def build_create_request( # pylint: disable=too-many-locals,too-many-statements,too-many-branches url: str, *, file_content_length: int, + version: str, timeout: Optional[int] = None, file_content_type: Optional[str] = None, file_content_encoding: Optional[str] = None, @@ -73,7 +74,6 @@ def build_create_request( file_type_constant: Literal["file"] = kwargs.pop("file_type_constant", _headers.pop("x-ms-type", "file")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -156,6 +156,7 @@ def build_create_request( def build_download_request( url: str, *, + version: str, timeout: Optional[int] = None, range: Optional[str] = None, range_get_content_md5: Optional[bool] = None, @@ -168,7 +169,6 @@ def build_download_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -207,6 +207,7 @@ def build_download_request( def build_get_properties_request( url: str, *, + version: str, sharesnapshot: Optional[str] = None, timeout: Optional[int] = None, lease_id: Optional[str] = None, @@ -217,7 +218,6 @@ def build_get_properties_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -250,6 +250,7 @@ def build_get_properties_request( def build_delete_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, allow_trailing_dot: Optional[bool] = None, @@ -259,7 +260,6 @@ def build_delete_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -287,9 +287,10 @@ def build_delete_request( return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) -def build_set_http_headers_request( +def build_set_http_headers_request( # pylint: disable=too-many-locals url: str, *, + version: str, timeout: Optional[int] = None, file_content_length: Optional[int] = None, file_content_type: Optional[str] = None, @@ -317,7 +318,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -387,6 +387,7 @@ def build_set_http_headers_request( def build_set_metadata_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, lease_id: Optional[str] = None, @@ -398,7 +399,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -432,6 +432,7 @@ def build_set_metadata_request( def build_acquire_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, duration: Optional[int] = None, proposed_lease_id: Optional[str] = None, @@ -445,7 +446,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -483,6 +483,7 @@ def build_release_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, allow_trailing_dot: Optional[bool] = None, @@ -494,7 +495,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -529,6 +529,7 @@ def build_change_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, proposed_lease_id: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -541,7 +542,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -577,6 +577,7 @@ def build_change_lease_request( def build_break_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -589,7 +590,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -626,6 +626,7 @@ def build_upload_range_request( *, range: str, content_length: int, + version: str, timeout: Optional[int] = None, file_range_write: Union[str, _models.FileRangeWriteType] = "update", content_md5: Optional[bytes] = None, @@ -643,7 +644,6 @@ def build_upload_range_request( comp: Literal["range"] = kwargs.pop("comp", _params.pop("comp", "range")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -695,6 +695,7 @@ def build_upload_range_from_url_request( range: str, copy_source: str, content_length: int, + version: str, timeout: Optional[int] = None, source_range: Optional[str] = None, source_content_crc64: Optional[bytes] = None, @@ -715,7 +716,6 @@ def build_upload_range_from_url_request( file_range_write_from_url: Literal["update"] = kwargs.pop( "file_range_write_from_url", _headers.pop("x-ms-write", "update") ) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -777,6 +777,7 @@ def build_upload_range_from_url_request( def build_get_range_list_request( url: str, *, + version: str, sharesnapshot: Optional[str] = None, prevsharesnapshot: Optional[str] = None, timeout: Optional[int] = None, @@ -791,7 +792,6 @@ def build_get_range_list_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["rangelist"] = kwargs.pop("comp", _params.pop("comp", "rangelist")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -828,10 +828,11 @@ def build_get_range_list_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) -def build_start_copy_request( +def build_start_copy_request( # pylint: disable=too-many-locals url: str, *, copy_source: str, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, file_permission: str = "inherit", @@ -858,7 +859,6 @@ def build_start_copy_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -933,6 +933,7 @@ def build_abort_copy_request( url: str, *, copy_id: str, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, allow_trailing_dot: Optional[bool] = None, @@ -946,7 +947,6 @@ def build_abort_copy_request( copy_action_abort_constant: Literal["abort"] = kwargs.pop( "copy_action_abort_constant", _headers.pop("x-ms-copy-action", "abort") ) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -980,6 +980,7 @@ def build_abort_copy_request( def build_list_handles_request( url: str, *, + version: str, marker: Optional[str] = None, maxresults: Optional[int] = None, timeout: Optional[int] = None, @@ -992,7 +993,6 @@ def build_list_handles_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["listhandles"] = kwargs.pop("comp", _params.pop("comp", "listhandles")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1029,6 +1029,7 @@ def build_force_close_handles_request( url: str, *, handle_id: str, + version: str, timeout: Optional[int] = None, marker: Optional[str] = None, sharesnapshot: Optional[str] = None, @@ -1040,7 +1041,6 @@ def build_force_close_handles_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["forceclosehandles"] = kwargs.pop("comp", _params.pop("comp", "forceclosehandles")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1072,10 +1072,11 @@ def build_force_close_handles_request( return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) -def build_rename_request( +def build_rename_request( # pylint: disable=too-many-locals url: str, *, rename_source: str, + version: str, timeout: Optional[int] = None, replace_if_exists: Optional[bool] = None, ignore_read_only: Optional[bool] = None, @@ -1099,7 +1100,6 @@ def build_rename_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["rename"] = kwargs.pop("comp", _params.pop("comp", "rename")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1165,6 +1165,7 @@ def build_create_symbolic_link_request( url: str, *, link_text: str, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, file_creation_time: str = "now", @@ -1180,7 +1181,6 @@ def build_create_symbolic_link_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["symboliclink"] = kwargs.pop("restype", _params.pop("restype", "symboliclink")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1223,6 +1223,7 @@ def build_create_symbolic_link_request( def build_get_symbolic_link_request( url: str, *, + version: str, timeout: Optional[int] = None, sharesnapshot: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -1233,7 +1234,6 @@ def build_get_symbolic_link_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["symboliclink"] = kwargs.pop("restype", _params.pop("restype", "symboliclink")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1266,6 +1266,7 @@ def build_create_hard_link_request( url: str, *, target_file: str, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, lease_id: Optional[str] = None, @@ -1277,7 +1278,6 @@ def build_create_hard_link_request( restype: Literal["hardlink"] = kwargs.pop("restype", _params.pop("restype", "hardlink")) file_type_constant: Literal["file"] = kwargs.pop("file_type_constant", _headers.pop("x-ms-type", "file")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -1328,7 +1328,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def create( # pylint: disable=inconsistent-return-statements + def create( # pylint: disable=inconsistent-return-statements,too-many-locals self, file_content_length: int, timeout: Optional[int] = None, @@ -1468,6 +1468,7 @@ def create( # pylint: disable=inconsistent-return-statements _request = build_create_request( url=self._config.url, file_content_length=file_content_length, + version=self._config.version, timeout=timeout, file_content_type=_file_content_type, file_content_encoding=_file_content_encoding, @@ -1495,7 +1496,6 @@ def create( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, file_type_constant=file_type_constant, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -1604,6 +1604,7 @@ def download( _request = build_download_request( url=self._config.url, + version=self._config.version, timeout=timeout, range=range, range_get_content_md5=range_get_content_md5, @@ -1611,7 +1612,6 @@ def download( lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -1749,12 +1749,12 @@ def get_properties( # pylint: disable=inconsistent-return-statements _request = build_get_properties_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -1871,11 +1871,11 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -1906,7 +1906,7 @@ def delete( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def set_http_headers( # pylint: disable=inconsistent-return-statements + def set_http_headers( # pylint: disable=inconsistent-return-statements,too-many-locals self, timeout: Optional[int] = None, file_content_length: Optional[int] = None, @@ -2014,6 +2014,7 @@ def set_http_headers( # pylint: disable=inconsistent-return-statements _request = build_set_http_headers_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_content_length=file_content_length, file_content_type=_file_content_type, @@ -2036,7 +2037,6 @@ def set_http_headers( # pylint: disable=inconsistent-return-statements allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2135,13 +2135,13 @@ def set_metadata( # pylint: disable=inconsistent-return-statements _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2224,6 +2224,7 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -2232,7 +2233,6 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2307,13 +2307,13 @@ def release_lease( # pylint: disable=inconsistent-return-statements _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2396,6 +2396,7 @@ def change_lease( # pylint: disable=inconsistent-return-statements _request = build_change_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, proposed_lease_id=proposed_lease_id, request_id_parameter=request_id_parameter, @@ -2403,7 +2404,6 @@ def change_lease( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2485,6 +2485,7 @@ def break_lease( # pylint: disable=inconsistent-return-statements _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, request_id_parameter=request_id_parameter, @@ -2492,7 +2493,6 @@ def break_lease( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, comp=comp, action=action, - version=self._config.version, headers=_headers, params=_params, ) @@ -2528,7 +2528,7 @@ def break_lease( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def upload_range( # pylint: disable=inconsistent-return-statements + def upload_range( # pylint: disable=inconsistent-return-statements,too-many-locals self, range: str, content_length: int, @@ -2616,6 +2616,7 @@ def upload_range( # pylint: disable=inconsistent-return-statements url=self._config.url, range=range, content_length=content_length, + version=self._config.version, timeout=timeout, file_range_write=file_range_write, content_md5=content_md5, @@ -2627,7 +2628,6 @@ def upload_range( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -2753,6 +2753,7 @@ def upload_range_from_url( # pylint: disable=inconsistent-return-statements range=range, copy_source=copy_source, content_length=content_length, + version=self._config.version, timeout=timeout, source_range=source_range, source_content_crc64=source_content_crc64, @@ -2766,7 +2767,6 @@ def upload_range_from_url( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, comp=comp, file_range_write_from_url=self._config.file_range_write_from_url, - version=self._config.version, headers=_headers, params=_params, ) @@ -2866,6 +2866,7 @@ def get_range_list( _request = build_get_range_list_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, prevsharesnapshot=prevsharesnapshot, timeout=timeout, @@ -2875,7 +2876,6 @@ def get_range_list( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2912,7 +2912,7 @@ def get_range_list( return deserialized # type: ignore @distributed_trace - def start_copy( # pylint: disable=inconsistent-return-statements + def start_copy( # pylint: disable=inconsistent-return-statements,too-many-locals self, copy_source: str, timeout: Optional[int] = None, @@ -3027,6 +3027,7 @@ def start_copy( # pylint: disable=inconsistent-return-statements _request = build_start_copy_request( url=self._config.url, copy_source=copy_source, + version=self._config.version, timeout=timeout, metadata=metadata, file_permission=file_permission, @@ -3048,7 +3049,6 @@ def start_copy( # pylint: disable=inconsistent-return-statements allow_trailing_dot=self._config.allow_trailing_dot, allow_source_trailing_dot=self._config.allow_source_trailing_dot, file_request_intent=self._config.file_request_intent, - version=self._config.version, headers=_headers, params=_params, ) @@ -3130,13 +3130,13 @@ def abort_copy( # pylint: disable=inconsistent-return-statements _request = build_abort_copy_request( url=self._config.url, copy_id=copy_id, + version=self._config.version, timeout=timeout, lease_id=_lease_id, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, copy_action_abort_constant=copy_action_abort_constant, - version=self._config.version, headers=_headers, params=_params, ) @@ -3213,6 +3213,7 @@ def list_handles( _request = build_list_handles_request( url=self._config.url, + version=self._config.version, marker=marker, maxresults=maxresults, timeout=timeout, @@ -3220,7 +3221,6 @@ def list_handles( allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -3302,13 +3302,13 @@ def force_close_handles( # pylint: disable=inconsistent-return-statements _request = build_force_close_handles_request( url=self._config.url, handle_id=handle_id, + version=self._config.version, timeout=timeout, marker=marker, sharesnapshot=sharesnapshot, allow_trailing_dot=self._config.allow_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -3345,7 +3345,7 @@ def force_close_handles( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, response_headers) # type: ignore @distributed_trace - def rename( # pylint: disable=inconsistent-return-statements + def rename( # pylint: disable=inconsistent-return-statements,too-many-locals self, rename_source: str, timeout: Optional[int] = None, @@ -3453,6 +3453,7 @@ def rename( # pylint: disable=inconsistent-return-statements _request = build_rename_request( url=self._config.url, rename_source=rename_source, + version=self._config.version, timeout=timeout, replace_if_exists=replace_if_exists, ignore_read_only=ignore_read_only, @@ -3471,7 +3472,6 @@ def rename( # pylint: disable=inconsistent-return-statements allow_source_trailing_dot=self._config.allow_source_trailing_dot, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -3593,6 +3593,7 @@ def create_symbolic_link( # pylint: disable=inconsistent-return-statements _request = build_create_symbolic_link_request( url=self._config.url, link_text=link_text, + version=self._config.version, timeout=timeout, metadata=metadata, file_creation_time=file_creation_time, @@ -3603,7 +3604,6 @@ def create_symbolic_link( # pylint: disable=inconsistent-return-statements group=group, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -3694,12 +3694,12 @@ def get_symbolic_link( # pylint: disable=inconsistent-return-statements _request = build_get_symbolic_link_request( url=self._config.url, + version=self._config.version, timeout=timeout, sharesnapshot=sharesnapshot, request_id_parameter=request_id_parameter, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -3786,13 +3786,13 @@ def create_hard_link( # pylint: disable=inconsistent-return-statements _request = build_create_hard_link_request( url=self._config.url, target_file=target_file, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, file_type_constant=file_type_constant, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_service_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_service_operations.py index 917d34ed6a7a..11db434df4f1 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_service_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_service_operations.py @@ -38,6 +38,7 @@ def build_set_properties_request( url: str, *, content: Any, + version: str, timeout: Optional[int] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, **kwargs: Any @@ -48,7 +49,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -79,6 +79,7 @@ def build_set_properties_request( def build_get_properties_request( url: str, *, + version: str, timeout: Optional[int] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, **kwargs: Any @@ -88,7 +89,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -117,6 +117,7 @@ def build_get_properties_request( def build_list_shares_segment_request( url: str, *, + version: str, prefix: Optional[str] = None, marker: Optional[str] = None, maxresults: Optional[int] = None, @@ -129,7 +130,6 @@ def build_list_shares_segment_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["list"] = kwargs.pop("comp", _params.pop("comp", "list")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -163,7 +163,13 @@ def build_list_shares_segment_request( def build_get_user_delegation_key_request( - url: str, *, content: Any, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, + *, + content: Any, + version: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -171,7 +177,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -256,12 +261,12 @@ def set_properties( # pylint: disable=inconsistent-return-statements _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -321,11 +326,11 @@ def get_properties(self, timeout: Optional[int] = None, **kwargs: Any) -> _model _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -410,6 +415,7 @@ def list_shares_segment( _request = build_list_shares_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -417,7 +423,6 @@ def list_shares_segment( timeout=timeout, file_request_intent=self._config.file_request_intent, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -495,12 +500,12 @@ def get_user_delegation_key( _request = build_get_user_delegation_key_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_share_operations.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_share_operations.py index c0e359869884..464f7e4f6614 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_share_operations.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_generated/operations/_share_operations.py @@ -38,6 +38,7 @@ def build_create_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, quota: Optional[int] = None, @@ -58,7 +59,6 @@ def build_create_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -124,6 +124,7 @@ def build_create_request( def build_get_properties_request( url: str, *, + version: str, sharesnapshot: Optional[str] = None, timeout: Optional[int] = None, lease_id: Optional[str] = None, @@ -134,7 +135,6 @@ def build_get_properties_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -166,6 +166,7 @@ def build_get_properties_request( def build_delete_request( url: str, *, + version: str, sharesnapshot: Optional[str] = None, timeout: Optional[int] = None, delete_snapshots: Optional[Union[str, _models.DeleteSnapshotsOptionType]] = None, @@ -177,7 +178,6 @@ def build_delete_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -211,6 +211,7 @@ def build_delete_request( def build_acquire_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, duration: Optional[int] = None, proposed_lease_id: Optional[str] = None, @@ -225,7 +226,6 @@ 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")) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -264,6 +264,7 @@ def build_release_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, sharesnapshot: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -276,7 +277,6 @@ 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")) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -312,6 +312,7 @@ def build_change_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, proposed_lease_id: Optional[str] = None, sharesnapshot: Optional[str] = None, @@ -325,7 +326,6 @@ 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")) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -363,6 +363,7 @@ def build_renew_lease_request( url: str, *, lease_id: str, + version: str, timeout: Optional[int] = None, sharesnapshot: Optional[str] = None, request_id_parameter: Optional[str] = None, @@ -375,7 +376,6 @@ 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")) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -410,6 +410,7 @@ def build_renew_lease_request( def build_break_lease_request( url: str, *, + version: str, timeout: Optional[int] = None, break_period: Optional[int] = None, lease_id: Optional[str] = None, @@ -424,7 +425,6 @@ 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")) restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -462,6 +462,7 @@ def build_break_lease_request( def build_create_snapshot_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -472,7 +473,6 @@ def build_create_snapshot_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["snapshot"] = kwargs.pop("comp", _params.pop("comp", "snapshot")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -503,6 +503,7 @@ def build_create_snapshot_request( def build_create_permission_request( url: str, *, + version: str, timeout: Optional[int] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, **kwargs: Any @@ -513,7 +514,6 @@ def build_create_permission_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["filepermission"] = kwargs.pop("comp", _params.pop("comp", "filepermission")) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -545,6 +545,7 @@ def build_get_permission_request( url: str, *, file_permission_key: str, + version: str, file_permission_format: Optional[Union[str, _models.FilePermissionFormat]] = None, timeout: Optional[int] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -555,7 +556,6 @@ def build_get_permission_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["filepermission"] = kwargs.pop("comp", _params.pop("comp", "filepermission")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -589,6 +589,7 @@ def build_get_permission_request( def build_set_properties_request( url: str, *, + version: str, timeout: Optional[int] = None, quota: Optional[int] = None, access_tier: Optional[Union[str, _models.ShareAccessTier]] = None, @@ -609,7 +610,6 @@ def build_set_properties_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -674,6 +674,7 @@ def build_set_properties_request( def build_set_metadata_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, lease_id: Optional[str] = None, @@ -685,7 +686,6 @@ def build_set_metadata_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["metadata"] = kwargs.pop("comp", _params.pop("comp", "metadata")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -718,6 +718,7 @@ def build_set_metadata_request( def build_get_access_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -728,7 +729,6 @@ def build_get_access_policy_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["acl"] = kwargs.pop("comp", _params.pop("comp", "acl")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -759,6 +759,7 @@ def build_get_access_policy_request( def build_set_access_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, content: Any = None, @@ -771,7 +772,6 @@ def build_set_access_policy_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -804,6 +804,7 @@ def build_set_access_policy_request( def build_get_statistics_request( url: str, *, + version: str, timeout: Optional[int] = None, lease_id: Optional[str] = None, file_request_intent: Optional[Union[str, _models.ShareTokenIntent]] = None, @@ -814,7 +815,6 @@ def build_get_statistics_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["stats"] = kwargs.pop("comp", _params.pop("comp", "stats")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -845,6 +845,7 @@ def build_get_statistics_request( def build_restore_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, deleted_share_name: Optional[str] = None, @@ -857,7 +858,6 @@ def build_restore_request( restype: Literal["share"] = kwargs.pop("restype", _params.pop("restype", "share")) comp: Literal["undelete"] = kwargs.pop("comp", _params.pop("comp", "undelete")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -911,7 +911,7 @@ def __init__(self, *args, **kwargs) -> None: self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") @distributed_trace - def create( # pylint: disable=inconsistent-return-statements + def create( # pylint: disable=inconsistent-return-statements,too-many-locals self, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, @@ -997,6 +997,7 @@ def create( # pylint: disable=inconsistent-return-statements _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, quota=quota, @@ -1012,7 +1013,6 @@ def create( # pylint: disable=inconsistent-return-statements enable_smb_directory_lease=enable_smb_directory_lease, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1101,12 +1101,12 @@ def get_properties( # pylint: disable=inconsistent-return-statements _request = build_get_properties_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1244,13 +1244,13 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, + version=self._config.version, sharesnapshot=sharesnapshot, timeout=timeout, delete_snapshots=delete_snapshots, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1340,6 +1340,7 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements _request = build_acquire_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, duration=duration, proposed_lease_id=proposed_lease_id, @@ -1349,7 +1350,6 @@ def acquire_lease( # pylint: disable=inconsistent-return-statements comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1433,6 +1433,7 @@ def release_lease( # pylint: disable=inconsistent-return-statements _request = build_release_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, sharesnapshot=sharesnapshot, request_id_parameter=request_id_parameter, @@ -1440,7 +1441,6 @@ def release_lease( # pylint: disable=inconsistent-return-statements comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1528,6 +1528,7 @@ def change_lease( # pylint: disable=inconsistent-return-statements _request = build_change_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, proposed_lease_id=proposed_lease_id, sharesnapshot=sharesnapshot, @@ -1536,7 +1537,6 @@ def change_lease( # pylint: disable=inconsistent-return-statements comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1620,6 +1620,7 @@ def renew_lease( # pylint: disable=inconsistent-return-statements _request = build_renew_lease_request( url=self._config.url, lease_id=lease_id, + version=self._config.version, timeout=timeout, sharesnapshot=sharesnapshot, request_id_parameter=request_id_parameter, @@ -1627,7 +1628,6 @@ def renew_lease( # pylint: disable=inconsistent-return-statements comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1723,6 +1723,7 @@ def break_lease( # pylint: disable=inconsistent-return-statements _request = build_break_lease_request( url=self._config.url, + version=self._config.version, timeout=timeout, break_period=break_period, lease_id=_lease_id, @@ -1732,7 +1733,6 @@ def break_lease( # pylint: disable=inconsistent-return-statements comp=comp, action=action, restype=restype, - version=self._config.version, headers=_headers, params=_params, ) @@ -1803,12 +1803,12 @@ def create_snapshot( # pylint: disable=inconsistent-return-statements _request = build_create_snapshot_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -1936,12 +1936,12 @@ def create_permission( # pylint: disable=inconsistent-return-statements _request = build_create_permission_request( url=self._config.url, + version=self._config.version, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, json=_json, content=_content, headers=_headers, @@ -2021,12 +2021,12 @@ def get_permission( _request = build_get_permission_request( url=self._config.url, file_permission_key=file_permission_key, + version=self._config.version, file_permission_format=file_permission_format, timeout=timeout, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2060,7 +2060,7 @@ def get_permission( return deserialized # type: ignore @distributed_trace - def set_properties( # pylint: disable=inconsistent-return-statements + def set_properties( # pylint: disable=inconsistent-return-statements,too-many-locals self, timeout: Optional[int] = None, quota: Optional[int] = None, @@ -2146,6 +2146,7 @@ def set_properties( # pylint: disable=inconsistent-return-statements _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, quota=quota, access_tier=access_tier, @@ -2161,7 +2162,6 @@ def set_properties( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2259,13 +2259,13 @@ def set_metadata( # pylint: disable=inconsistent-return-statements _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2337,12 +2337,12 @@ def get_access_policy( _request = build_get_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2430,13 +2430,13 @@ def set_access_policy( # pylint: disable=inconsistent-return-statements _request = build_set_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -2509,12 +2509,12 @@ def get_statistics( _request = build_get_statistics_request( url=self._config.url, + version=self._config.version, timeout=timeout, lease_id=_lease_id, file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -2596,6 +2596,7 @@ def restore( # pylint: disable=inconsistent-return-statements _request = build_restore_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, deleted_share_name=deleted_share_name, @@ -2603,7 +2604,6 @@ def restore( # pylint: disable=inconsistent-return-statements file_request_intent=self._config.file_request_intent, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) From 1fc113444e8a7d81ed8f393b7175bb57396a0f24 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:36:49 -0500 Subject: [PATCH 08/19] Queue code gen --- .../queue/_generated/_azure_queue_storage.py | 9 +++-- .../queue/_generated/_configuration.py | 13 ++++--- .../queue/_generated/_utils/serialization.py | 17 +++++++-- .../_generated/aio/_azure_queue_storage.py | 9 +++-- .../queue/_generated/aio/_configuration.py | 13 ++++--- .../aio/operations/_message_id_operations.py | 4 +-- .../aio/operations/_messages_operations.py | 8 ++--- .../aio/operations/_queue_operations.py | 12 +++---- .../aio/operations/_service_operations.py | 10 +++--- .../operations/_message_id_operations.py | 10 +++--- .../operations/_messages_operations.py | 17 +++++---- .../operations/_queue_operations.py | 27 +++++++------- .../operations/_service_operations.py | 36 +++++++++++-------- 13 files changed, 98 insertions(+), 87 deletions(-) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_azure_queue_storage.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_azure_queue_storage.py index 99aa979a5fac..8ef85723b820 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_azure_queue_storage.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_azure_queue_storage.py @@ -34,17 +34,16 @@ class AzureQueueStorage: # pylint: disable=client-accepts-api-version-keyword :param url: The URL of the service account, queue or message that is the target of the desired operation. Required. :type url: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :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 "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str """ def __init__( # pylint: disable=missing-client-constructor-parameter-credential - self, url: str, base_url: str = "", **kwargs: Any + self, url: str, version: str, base_url: str = "", **kwargs: Any ) -> None: - self._config = AzureQueueStorageConfiguration(url=url, **kwargs) + self._config = AzureQueueStorageConfiguration(url=url, version=version, **kwargs) _policies = kwargs.pop("policies", None) if _policies is None: diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_configuration.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_configuration.py index b52e5147a0d0..04adef0da253 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_configuration.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_configuration.py @@ -6,7 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Literal +from typing import Any from azure.core.pipeline import policies @@ -22,16 +22,15 @@ class AzureQueueStorageConfiguration: # pylint: disable=too-many-instance-attri :param url: The URL of the service account, queue or message that is the target of the desired operation. Required. :type url: str - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str """ - def __init__(self, url: str, **kwargs: Any) -> None: - version: Literal["2026-04-06"] = kwargs.pop("version", "2026-04-06") - + def __init__(self, url: str, version: str, **kwargs: Any) -> None: if url is None: raise ValueError("Parameter 'url' must not be None.") + if version is None: + raise ValueError("Parameter 'version' must not be None.") self.url = url self.version = version diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_utils/serialization.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_utils/serialization.py index ff543ed937ff..6da830e0cf4a 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_utils/serialization.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/_utils/serialization.py @@ -821,13 +821,20 @@ def serialize_basic(cls, data, data_type, **kwargs): :param str data_type: Type of object in the iterable. :rtype: str, int, float, bool :return: serialized object + :raises TypeError: raise if data_type is not one of str, int, float, bool. """ custom_serializer = cls._get_custom_serializers(data_type, **kwargs) if custom_serializer: return custom_serializer(data) if data_type == "str": return cls.serialize_unicode(data) - return eval(data_type)(data) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(data) + if data_type == "float": + return float(data) + if data_type == "bool": + return bool(data) + raise TypeError("Unknown basic data type: {}".format(data_type)) @classmethod def serialize_unicode(cls, data): @@ -1757,7 +1764,7 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return :param str data_type: deserialization data type. :return: Deserialized basic type. :rtype: str, int, float or bool - :raises TypeError: if string format is not valid. + :raises TypeError: if string format is not valid or data_type is not one of str, int, float, bool. """ # If we're here, data is supposed to be a basic type. # If it's still an XML node, take the text @@ -1783,7 +1790,11 @@ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return if data_type == "str": return self.deserialize_unicode(attr) - return eval(data_type)(attr) # nosec # pylint: disable=eval-used + if data_type == "int": + return int(attr) + if data_type == "float": + return float(attr) + raise TypeError("Unknown basic data type: {}".format(data_type)) @staticmethod def deserialize_unicode(data): diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_azure_queue_storage.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_azure_queue_storage.py index 27221f231c42..3b6b202768e2 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_azure_queue_storage.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_azure_queue_storage.py @@ -34,17 +34,16 @@ class AzureQueueStorage: # pylint: disable=client-accepts-api-version-keyword :param url: The URL of the service account, queue or message that is the target of the desired operation. Required. :type url: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str :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 "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str """ def __init__( # pylint: disable=missing-client-constructor-parameter-credential - self, url: str, base_url: str = "", **kwargs: Any + self, url: str, version: str, base_url: str = "", **kwargs: Any ) -> None: - self._config = AzureQueueStorageConfiguration(url=url, **kwargs) + self._config = AzureQueueStorageConfiguration(url=url, version=version, **kwargs) _policies = kwargs.pop("policies", None) if _policies is None: diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_configuration.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_configuration.py index 2d41be4a83fd..1c90497920fe 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_configuration.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/_configuration.py @@ -6,7 +6,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from typing import Any, Literal +from typing import Any from azure.core.pipeline import policies @@ -22,16 +22,15 @@ class AzureQueueStorageConfiguration: # pylint: disable=too-many-instance-attri :param url: The URL of the service account, queue or message that is the target of the desired operation. Required. :type url: str - :keyword version: Specifies the version of the operation to use for this request. Default value - is "2026-04-06". Note that overriding this default value may result in unsupported behavior. - :paramtype version: str + :param version: Specifies the version of the operation to use for this request. Required. + :type version: str """ - def __init__(self, url: str, **kwargs: Any) -> None: - version: Literal["2026-04-06"] = kwargs.pop("version", "2026-04-06") - + def __init__(self, url: str, version: str, **kwargs: Any) -> None: if url is None: raise ValueError("Parameter 'url' must not be None.") + if version is None: + raise ValueError("Parameter 'version' must not be None.") self.url = url self.version = version diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_message_id_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_message_id_operations.py index 8c7dd2ffbae0..997087907907 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_message_id_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_message_id_operations.py @@ -114,10 +114,10 @@ async def update( url=self._config.url, pop_receipt=pop_receipt, visibilitytimeout=visibilitytimeout, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -188,9 +188,9 @@ async def delete( _request = build_delete_request( url=self._config.url, pop_receipt=pop_receipt, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_messages_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_messages_operations.py index 1eb4f013416d..9fd47e1b4007 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_messages_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_messages_operations.py @@ -105,11 +105,11 @@ async def dequeue( _request = build_dequeue_request( url=self._config.url, + version=self._config.version, number_of_messages=number_of_messages, visibilitytimeout=visibilitytimeout, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -175,9 +175,9 @@ async def clear( _request = build_clear_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -267,12 +267,12 @@ async def enqueue( _request = build_enqueue_request( url=self._config.url, + version=self._config.version, visibilitytimeout=visibilitytimeout, message_time_to_live=message_time_to_live, timeout=timeout, request_id_parameter=request_id_parameter, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -350,11 +350,11 @@ async def peek( _request = build_peek_request( url=self._config.url, + version=self._config.version, number_of_messages=number_of_messages, timeout=timeout, request_id_parameter=request_id_parameter, peekonly=peekonly, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_queue_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_queue_operations.py index 87f58d055aa6..76787fa67345 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_queue_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_queue_operations.py @@ -101,10 +101,10 @@ async def create( _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -166,9 +166,9 @@ async def delete( _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -232,10 +232,10 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -313,11 +313,11 @@ async def set_metadata( _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -381,10 +381,10 @@ async def get_access_policy( _request = build_get_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -467,11 +467,11 @@ async def set_access_policy( _request = build_set_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_service_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_service_operations.py index e083a7710c0c..54a8f75be779 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_service_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/aio/operations/_service_operations.py @@ -102,12 +102,12 @@ async def set_properties( _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -172,11 +172,11 @@ async def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -245,11 +245,11 @@ async def get_statistics( _request = build_get_statistics_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -327,12 +327,12 @@ async def get_user_delegation_key( _request = build_get_user_delegation_key_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -430,6 +430,7 @@ async def list_queues_segment( _request = build_list_queues_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -437,7 +438,6 @@ async def list_queues_segment( timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_message_id_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_message_id_operations.py index 62e0c4bf956c..39c22976afbe 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_message_id_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_message_id_operations.py @@ -7,7 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from collections.abc import MutableMapping -from typing import Any, Callable, Literal, Optional, TypeVar +from typing import Any, Callable, Optional, TypeVar from azure.core import PipelineClient from azure.core.exceptions import ( @@ -39,6 +39,7 @@ def build_update_request( *, pop_receipt: str, visibilitytimeout: int, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, content: Any = None, @@ -48,7 +49,6 @@ def build_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -82,6 +82,7 @@ def build_delete_request( url: str, *, pop_receipt: str, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any @@ -89,7 +90,6 @@ def build_delete_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -196,10 +196,10 @@ def update( # pylint: disable=inconsistent-return-statements url=self._config.url, pop_receipt=pop_receipt, visibilitytimeout=visibilitytimeout, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -270,9 +270,9 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, pop_receipt=pop_receipt, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_messages_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_messages_operations.py index d457deb43c6e..290bef2a7776 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_messages_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_messages_operations.py @@ -37,6 +37,7 @@ def build_dequeue_request( url: str, *, + version: str, number_of_messages: Optional[int] = None, visibilitytimeout: Optional[int] = None, timeout: Optional[int] = None, @@ -46,7 +47,6 @@ def build_dequeue_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -77,12 +77,11 @@ def build_dequeue_request( def build_clear_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -110,6 +109,7 @@ def build_enqueue_request( url: str, *, content: Any, + version: str, visibilitytimeout: Optional[int] = None, message_time_to_live: Optional[int] = None, timeout: Optional[int] = None, @@ -120,7 +120,6 @@ def build_enqueue_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -155,6 +154,7 @@ def build_enqueue_request( def build_peek_request( url: str, *, + version: str, number_of_messages: Optional[int] = None, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, @@ -164,7 +164,6 @@ def build_peek_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) peekonly: Literal["true"] = kwargs.pop("peekonly", _params.pop("peekonly", "true")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -259,11 +258,11 @@ def dequeue( _request = build_dequeue_request( url=self._config.url, + version=self._config.version, number_of_messages=number_of_messages, visibilitytimeout=visibilitytimeout, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -329,9 +328,9 @@ def clear( # pylint: disable=inconsistent-return-statements _request = build_clear_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -421,12 +420,12 @@ def enqueue( _request = build_enqueue_request( url=self._config.url, + version=self._config.version, visibilitytimeout=visibilitytimeout, message_time_to_live=message_time_to_live, timeout=timeout, request_id_parameter=request_id_parameter, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -504,11 +503,11 @@ def peek( _request = build_peek_request( url=self._config.url, + version=self._config.version, number_of_messages=number_of_messages, timeout=timeout, request_id_parameter=request_id_parameter, peekonly=peekonly, - version=self._config.version, headers=_headers, params=_params, ) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_queue_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_queue_operations.py index 385b393ed133..fd4370c3801f 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_queue_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_queue_operations.py @@ -37,6 +37,7 @@ def build_create_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, request_id_parameter: Optional[str] = None, @@ -45,7 +46,6 @@ def build_create_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -72,12 +72,11 @@ def build_create_request( def build_delete_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -102,13 +101,12 @@ def build_delete_request( def build_get_properties_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["metadata"] = kwargs.pop("comp", _params.pop("comp", "metadata")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -136,6 +134,7 @@ def build_get_properties_request( def build_set_metadata_request( url: str, *, + version: str, timeout: Optional[int] = None, metadata: Optional[dict[str, str]] = None, request_id_parameter: Optional[str] = None, @@ -145,7 +144,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -173,13 +171,12 @@ def build_set_metadata_request( def build_get_access_policy_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["acl"] = kwargs.pop("comp", _params.pop("comp", "acl")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -207,6 +204,7 @@ def build_get_access_policy_request( def build_set_access_policy_request( url: str, *, + version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, content: Any = None, @@ -217,7 +215,6 @@ def build_set_access_policy_request( 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -306,10 +303,10 @@ def create( # pylint: disable=inconsistent-return-statements _request = build_create_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -371,9 +368,9 @@ def delete( # pylint: disable=inconsistent-return-statements _request = build_delete_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, - version=self._config.version, headers=_headers, params=_params, ) @@ -437,10 +434,10 @@ def get_properties( # pylint: disable=inconsistent-return-statements _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -518,11 +515,11 @@ def set_metadata( # pylint: disable=inconsistent-return-statements _request = build_set_metadata_request( url=self._config.url, + version=self._config.version, timeout=timeout, metadata=metadata, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -586,10 +583,10 @@ def get_access_policy( _request = build_get_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -672,11 +669,11 @@ def set_access_policy( # pylint: disable=inconsistent-return-statements _request = build_set_access_policy_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_service_operations.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_service_operations.py index 23bd755921bc..b20f5f5d24bd 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_service_operations.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_generated/operations/_service_operations.py @@ -35,7 +35,13 @@ def build_set_properties_request( - url: str, *, content: Any, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, + *, + content: Any, + version: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -43,7 +49,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -72,14 +77,13 @@ def build_set_properties_request( def build_get_properties_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service")) comp: Literal["properties"] = kwargs.pop("comp", _params.pop("comp", "properties")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -106,14 +110,13 @@ def build_get_properties_request( def build_get_statistics_request( - url: str, *, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, *, version: str, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) restype: Literal["service"] = kwargs.pop("restype", _params.pop("restype", "service")) comp: Literal["stats"] = kwargs.pop("comp", _params.pop("comp", "stats")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -140,7 +143,13 @@ def build_get_statistics_request( def build_get_user_delegation_key_request( - url: str, *, content: Any, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any + url: str, + *, + content: Any, + version: str, + timeout: Optional[int] = None, + request_id_parameter: Optional[str] = None, + **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) @@ -148,7 +157,6 @@ 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["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -179,6 +187,7 @@ def build_get_user_delegation_key_request( def build_list_queues_segment_request( url: str, *, + version: str, prefix: Optional[str] = None, marker: Optional[str] = None, maxresults: Optional[int] = None, @@ -191,7 +200,6 @@ def build_list_queues_segment_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) comp: Literal["list"] = kwargs.pop("comp", _params.pop("comp", "list")) - version: Literal["2026-04-06"] = kwargs.pop("version", _headers.pop("x-ms-version", "2026-04-06")) accept = _headers.pop("Accept", "application/xml") # Construct URL @@ -288,12 +296,12 @@ def set_properties( # pylint: disable=inconsistent-return-statements _request = build_set_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -358,11 +366,11 @@ def get_properties( _request = build_get_properties_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -431,11 +439,11 @@ def get_statistics( _request = build_get_statistics_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) @@ -513,12 +521,12 @@ def get_user_delegation_key( _request = build_get_user_delegation_key_request( url=self._config.url, + version=self._config.version, timeout=timeout, request_id_parameter=request_id_parameter, restype=restype, comp=comp, content_type=content_type, - version=self._config.version, content=_content, headers=_headers, params=_params, @@ -616,6 +624,7 @@ def list_queues_segment( _request = build_list_queues_segment_request( url=self._config.url, + version=self._config.version, prefix=prefix, marker=marker, maxresults=maxresults, @@ -623,7 +632,6 @@ def list_queues_segment( timeout=timeout, request_id_parameter=request_id_parameter, comp=comp, - version=self._config.version, headers=_headers, params=_params, ) From 56ecf801c54f4288e18a2984ef74027b25112f49 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 00:55:42 -0500 Subject: [PATCH 09/19] Fixed blob tests --- .../azure/storage/blob/_blob_client.py | 5 +- .../storage/blob/_blob_client_helpers.py | 54 ++++++++++++------- .../storage/blob/_blob_service_client.py | 5 +- .../azure/storage/blob/_container_client.py | 2 +- .../storage/blob/aio/_blob_client_async.py | 5 +- .../blob/aio/_blob_service_client_async.py | 5 +- .../blob/aio/_container_client_async.py | 2 +- 7 files changed, 49 insertions(+), 29 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index 6bdc4fef04b7..595eab0b3618 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -186,8 +186,9 @@ def __init__( self._raw_credential = credential if credential else sas_token self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._client = AzureBlobStorage(self.url, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + self._client._config.version = self._api_version # type: ignore [assignment] self._configure_encryption(kwargs) def __enter__(self) -> Self: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py index d2c86b494f04..29359682f2c8 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py @@ -24,7 +24,8 @@ DeleteSnapshotsOptionType, ModifiedAccessConditions, QueryRequest, - SequenceNumberAccessConditions + SequenceNumberAccessConditions, + SourceCpkInfo ) from ._models import ( BlobBlock, @@ -215,6 +216,13 @@ def _upload_blob_from_url_options(source_url: str, **kwargs: Any) -> Dict[str, A cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, encryption_algorithm=cpk.algorithm) source_cpk = kwargs.pop('source_cpk', None) + source_cpk_info = None + if source_cpk: + source_cpk_info = SourceCpkInfo( + source_encryption_key=source_cpk.key_value, + source_encryption_key_sha256=source_cpk.key_hash, + source_encryption_algorithm=source_cpk.algorithm + ) options = { 'copy_source_authorization': source_authorization, @@ -231,17 +239,12 @@ def _upload_blob_from_url_options(source_url: str, **kwargs: Any) -> Dict[str, A 'source_modified_access_conditions': get_source_conditions(kwargs), 'cpk_info': cpk_info, 'cpk_scope_info': get_cpk_scope_info(kwargs), + 'source_cpk_info': source_cpk_info, 'headers': headers, } options.update(kwargs) if not overwrite and not _any_conditions(**options): options['modified_access_conditions'].if_none_match = '*' - if source_cpk: - options.update({ - 'source_encryption_key': source_cpk.key_value, - 'source_encryption_key_sha256': source_cpk.key_hash, - 'source_encryption_algorithm': source_cpk.algorithm - }) return options def _download_blob_options( @@ -766,6 +769,14 @@ def _stage_block_from_url_options( cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, encryption_algorithm=cpk.algorithm) source_cpk = kwargs.pop('source_cpk', None) + source_cpk_info = None + if source_cpk: + source_cpk_info = SourceCpkInfo( + source_encryption_key=source_cpk.key_value, + source_encryption_key_sha256=source_cpk.key_hash, + source_encryption_algorithm=source_cpk.algorithm + ) + options = { 'copy_source_authorization': source_authorization, 'file_request_intent': source_token_intent, @@ -778,15 +789,10 @@ def _stage_block_from_url_options( 'lease_access_conditions': access_conditions, 'cpk_scope_info': cpk_scope_info, 'cpk_info': cpk_info, + 'source_cpk_info': source_cpk_info, 'cls': return_response_headers, } options.update(kwargs) - if source_cpk: - options.update({ - 'source_encryption_key': source_cpk.key_value, - 'source_encryption_key_sha256': source_cpk.key_hash, - 'source_encryption_algorithm': source_cpk.algorithm - }) return options def _get_block_list_result(blocks: BlockList) -> Tuple[List[BlobBlock], List[BlobBlock]]: @@ -1056,6 +1062,13 @@ def _upload_pages_from_url_options( cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, encryption_algorithm=cpk.algorithm) source_cpk = kwargs.pop('source_cpk', None) + source_cpk_info = None + if source_cpk: + source_cpk_info = SourceCpkInfo( + source_encryption_key=source_cpk.key_value, + source_encryption_key_sha256=source_cpk.key_hash, + source_encryption_algorithm=source_cpk.algorithm + ) options = { 'copy_source_authorization': source_authorization, @@ -1072,15 +1085,10 @@ def _upload_pages_from_url_options( 'source_modified_access_conditions': source_mod_conditions, 'cpk_scope_info': cpk_scope_info, 'cpk_info': cpk_info, + 'source_cpk_info': source_cpk_info, 'cls': return_response_headers } options.update(kwargs) - if source_cpk: - options.update({ - 'source_encryption_key': source_cpk.key_value, - 'source_encryption_key_sha256': source_cpk.key_hash, - 'source_encryption_algorithm': source_cpk.algorithm - }) return options def _clear_page_options( @@ -1210,6 +1218,13 @@ def _append_block_from_url_options( encryption_algorithm=cpk.algorithm ) source_cpk = kwargs.pop('source_cpk', None) + source_cpk_info = None + if source_cpk: + source_cpk_info = SourceCpkInfo( + source_encryption_key=source_cpk.key_value, + source_encryption_key_sha256=source_cpk.key_hash, + source_encryption_algorithm=source_cpk.algorithm + ) options = { 'copy_source_authorization': source_authorization, @@ -1225,6 +1240,7 @@ def _append_block_from_url_options( 'source_modified_access_conditions': source_mod_conditions, 'cpk_scope_info': cpk_scope_info, 'cpk_info': cpk_info, + 'source_cpk_info': source_cpk_info, 'cls': return_response_headers, 'timeout': kwargs.pop('timeout', None) } diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py index 24c25b9dae3d..18c17b31fa63 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py @@ -127,8 +127,9 @@ def __init__( _, sas_token = parse_query(parsed_url.query) self._query_str, credential = self._format_query_string(sas_token, credential) super(BlobServiceClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._client = AzureBlobStorage(self.url, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + self._client._config.version = self._api_version # type: ignore [assignment] self._configure_encryption(kwargs) def __enter__(self) -> Self: 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 e35e9ce9b0f4..f587a9a2969d 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 @@ -167,7 +167,7 @@ def close(self) -> None: self._client.close() def _build_generated_client(self) -> AzureBlobStorage: - client = AzureBlobStorage(self.url, base_url=self.url, pipeline=self._pipeline) + client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) client._config.version = self._api_version # type: ignore [assignment] # pylint: disable=protected-access return client diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index 339fc289bda5..b8ccb01494cb 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -196,8 +196,9 @@ def __init__( self._raw_credential = credential if credential else sas_token self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._client = AzureBlobStorage(self.url, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + self._client._config.version = self._api_version # type: ignore [assignment] self._configure_encryption(kwargs) async def __aenter__(self) -> Self: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py index 1dbc86df0edb..35f4ec3eec78 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py @@ -135,8 +135,9 @@ def __init__( _, sas_token = parse_query(parsed_url.query) self._query_str, credential = self._format_query_string(sas_token, credential) super(BlobServiceClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._client = AzureBlobStorage(self.url, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + self._client._config.version = self._api_version # type: ignore [assignment] self._configure_encryption(kwargs) async def __aenter__(self) -> Self: 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 72376a2dfcfe..f33c4dbe91f0 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 @@ -164,7 +164,7 @@ async def close(self) -> None: await self._client.close() def _build_generated_client(self) -> AzureBlobStorage: - client = AzureBlobStorage(self.url, base_url=self.url, pipeline=self._pipeline) + client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) client._config.version = self._api_version # type: ignore [assignment] # pylint: disable=protected-access return client From 517fee5b2f297c5cdc7b1dbac8f9a76a87adfb99 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 01:14:52 -0500 Subject: [PATCH 10/19] Fixed File Share and Queue after azure core breaking change --- .../azure/storage/fileshare/_directory_client.py | 16 +++++++++++----- .../azure/storage/fileshare/_file_client.py | 16 +++++++++++----- .../azure/storage/fileshare/_share_client.py | 16 +++++++++++----- .../storage/fileshare/_share_service_client.py | 16 +++++++++++----- .../fileshare/aio/_directory_client_async.py | 16 +++++++++++----- .../storage/fileshare/aio/_file_client_async.py | 16 +++++++++++----- .../storage/fileshare/aio/_share_client_async.py | 16 +++++++++++----- .../fileshare/aio/_share_service_client_async.py | 16 +++++++++++----- .../azure/storage/queue/_queue_client.py | 5 +++-- .../azure/storage/queue/_queue_service_client.py | 5 +++-- .../storage/queue/aio/_queue_client_async.py | 11 +++++++++-- .../queue/aio/_queue_service_client_async.py | 11 +++++++++-- 12 files changed, 112 insertions(+), 48 deletions(-) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py index 85af4243b8f7..21406688cd6f 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py @@ -131,11 +131,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py index 723ff4c91dd6..3fd620527e77 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py @@ -190,11 +190,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py index 9f4626c8421d..b1f5a3d03087 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py @@ -126,11 +126,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py index 14db31ee7632..2af6f71ba3c1 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py @@ -124,11 +124,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py index aefaa444565c..af7a8692c895 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py @@ -137,11 +137,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py index 771a4ee6538b..3ba6651efc67 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py @@ -196,11 +196,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py index a82ca45642c8..4efb6e8af735 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py @@ -132,11 +132,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py index ada7cd735bd7..2b52938d332e 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py @@ -127,11 +127,17 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._client = AzureFileStorage(url=self.url, base_url=self.url, pipeline=self._pipeline, - allow_trailing_dot=self.allow_trailing_dot, - allow_source_trailing_dot=self.allow_source_trailing_dot, - file_request_intent=self.file_request_intent) - self._client._config.version = get_api_version(kwargs) # type: ignore [assignment] + self._api_version = get_api_version(kwargs) + self._client = AzureFileStorage( + version=self._api_version, + url=self.url, + base_url=self.url, + pipeline=self._pipeline, + allow_trailing_dot=self.allow_trailing_dot, + allow_source_trailing_dot=self.allow_source_trailing_dot, + file_request_intent=self.file_request_intent + ) + self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py index 85f7b7c6c93a..d8d8ff094bbd 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py @@ -119,8 +119,9 @@ def __init__( ) self._message_encode_policy = message_encode_policy or NoEncodePolicy() self._message_decode_policy = message_decode_policy or NoDecodePolicy() - self._client = AzureQueueStorage(self.url, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = get_api_version(api_version) # type: ignore [assignment] + self._api_version = get_api_version(api_version) + self._client = AzureQueueStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + self._client._config.version = self._api_version # type: ignore [assignment] self._configure_encryption(kwargs) def __enter__(self) -> Self: diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py index cb80f5e04e1b..730f3155f379 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py @@ -116,8 +116,9 @@ def __init__( audience=audience, **kwargs, ) - self._client = AzureQueueStorage(self.url, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = get_api_version(api_version) # type: ignore [assignment] + self._api_version = get_api_version(api_version) + self._client = AzureQueueStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + self._client._config.version = self._api_version # type: ignore [assignment] self._configure_encryption(kwargs) def __enter__(self) -> Self: diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py index 6ba0cf3c2827..49934da7aee6 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py @@ -132,8 +132,15 @@ def __init__( self._message_encode_policy = message_encode_policy or NoEncodePolicy() self._message_decode_policy = message_decode_policy or NoDecodePolicy() - self._client = AzureQueueStorage(self.url, base_url=self.url, pipeline=self._pipeline, loop=loop) - self._client._config.version = get_api_version(api_version) # type: ignore [assignment] + self._api_version = get_api_version(api_version) + self._client = AzureQueueStorage( + self.url, + self._api_version, + base_url=self.url, + pipeline=self._pipeline, + loop=loop + ) + self._client._config.version = self._api_version # type: ignore [assignment] self._loop = loop self._configure_encryption(kwargs) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py index 53bc3913ecf2..2548a3467180 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py @@ -115,8 +115,15 @@ def __init__( audience=audience, **kwargs, ) - self._client = AzureQueueStorage(self.url, base_url=self.url, pipeline=self._pipeline, loop=loop) - self._client._config.version = get_api_version(api_version) # type: ignore [assignment] + self._api_version = get_api_version(api_version) + self._client = AzureQueueStorage( + self.url, + self._api_version, + base_url=self.url, + pipeline=self._pipeline, + loop=loop + ) + self._client._config.version = self._api_version # type: ignore [assignment] self._loop = loop self._configure_encryption(kwargs) From d24a4622c3dd8d7c8ab12585a7f17480b67133ad Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 01:16:35 -0500 Subject: [PATCH 11/19] Black formatter for Queue --- .../azure/storage/queue/aio/_queue_client_async.py | 6 +----- .../azure/storage/queue/aio/_queue_service_client_async.py | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py index 49934da7aee6..51561bc5bd50 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py @@ -134,11 +134,7 @@ def __init__( self._message_decode_policy = message_decode_policy or NoDecodePolicy() self._api_version = get_api_version(api_version) self._client = AzureQueueStorage( - self.url, - self._api_version, - base_url=self.url, - pipeline=self._pipeline, - loop=loop + self.url, self._api_version, base_url=self.url, pipeline=self._pipeline, loop=loop ) self._client._config.version = self._api_version # type: ignore [assignment] self._loop = loop diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py index 2548a3467180..6539b2e0e1ca 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py @@ -117,11 +117,7 @@ def __init__( ) self._api_version = get_api_version(api_version) self._client = AzureQueueStorage( - self.url, - self._api_version, - base_url=self.url, - pipeline=self._pipeline, - loop=loop + self.url, self._api_version, base_url=self.url, pipeline=self._pipeline, loop=loop ) self._client._config.version = self._api_version # type: ignore [assignment] self._loop = loop From 56fb58f1aa186b406a35113e041610eb9e8b7667 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 11:32:38 -0500 Subject: [PATCH 12/19] Too many instance ignore --- .../azure/storage/fileshare/_file_client.py | 1 + .../azure/storage/fileshare/aio/_file_client_async.py | 1 + 2 files changed, 2 insertions(+) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py index 3fd620527e77..f60eb6510b4f 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py @@ -4,6 +4,7 @@ # license information. # -------------------------------------------------------------------------- # pylint: disable=docstring-keyword-should-match-keyword-only, too-many-lines, too-many-public-methods +# pylint: disable=too-many-instance-attributes import functools import time diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py index 3ba6651efc67..2ed49e4684e6 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py @@ -4,6 +4,7 @@ # license information. # -------------------------------------------------------------------------- # pylint: disable=too-many-lines, too-many-public-methods, docstring-keyword-should-match-keyword-only +# pylint: disable=too-many-instance-attributes import functools import sys From ddab13925ef2da226eebf609c0551ff89cec485b Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 11:33:24 -0500 Subject: [PATCH 13/19] Forgot to remove old source_cpk_* kwargs --- .../azure/storage/blob/_blob_client_helpers.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py index 29359682f2c8..52a6a57ca5ed 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client_helpers.py @@ -1245,14 +1245,6 @@ def _append_block_from_url_options( 'timeout': kwargs.pop('timeout', None) } options.update(kwargs) - - if source_cpk: - options.update({ - 'source_encryption_key': source_cpk.key_value, - 'source_encryption_key_sha256': source_cpk.key_hash, - 'source_encryption_algorithm': source_cpk.algorithm - }) - return options def _seal_append_blob_options(**kwargs: Any) -> Dict[str, Any]: From 143f164dc8c42220918d2596091088a4737f55d8 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 15:31:37 -0500 Subject: [PATCH 14/19] Removed self._client._config.version from File Share --- .../azure/storage/fileshare/_directory_client.py | 4 +--- .../azure/storage/fileshare/_file_client.py | 5 +---- .../azure/storage/fileshare/_share_client.py | 4 +--- .../azure/storage/fileshare/_share_service_client.py | 4 +--- .../azure/storage/fileshare/aio/_directory_client_async.py | 4 +--- .../azure/storage/fileshare/aio/_file_client_async.py | 5 +---- .../azure/storage/fileshare/aio/_share_client_async.py | 4 +--- .../storage/fileshare/aio/_share_service_client_async.py | 4 +--- 8 files changed, 8 insertions(+), 26 deletions(-) diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py index 21406688cd6f..223b7fbf6360 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_directory_client.py @@ -131,9 +131,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -141,7 +140,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py index f60eb6510b4f..ed032562a768 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_file_client.py @@ -4,7 +4,6 @@ # license information. # -------------------------------------------------------------------------- # pylint: disable=docstring-keyword-should-match-keyword-only, too-many-lines, too-many-public-methods -# pylint: disable=too-many-instance-attributes import functools import time @@ -191,9 +190,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -201,7 +199,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py index b1f5a3d03087..1330b66fcf9e 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_client.py @@ -126,9 +126,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -136,7 +135,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py index 2af6f71ba3c1..8c35e2ee3d3b 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/_share_service_client.py @@ -124,9 +124,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -134,7 +133,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] def __enter__(self) -> Self: self._client.__enter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py index af7a8692c895..4fc04bb91d26 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_directory_client_async.py @@ -137,9 +137,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -147,7 +146,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py index 2ed49e4684e6..75d77c35cc1f 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_file_client_async.py @@ -4,7 +4,6 @@ # license information. # -------------------------------------------------------------------------- # pylint: disable=too-many-lines, too-many-public-methods, docstring-keyword-should-match-keyword-only -# pylint: disable=too-many-instance-attributes import functools import sys @@ -197,9 +196,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -207,7 +205,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py index 4efb6e8af735..2d2cdaf0a3f0 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_client_async.py @@ -132,9 +132,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -142,7 +141,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() diff --git a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py index 2b52938d332e..048b8973994c 100644 --- a/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py +++ b/sdk/storage/azure-storage-file-share/azure/storage/fileshare/aio/_share_service_client_async.py @@ -127,9 +127,8 @@ def __init__( self.allow_trailing_dot = kwargs.pop('allow_trailing_dot', None) self.allow_source_trailing_dot = kwargs.pop('allow_source_trailing_dot', None) self.file_request_intent = token_intent - self._api_version = get_api_version(kwargs) self._client = AzureFileStorage( - version=self._api_version, + version=get_api_version(kwargs), url=self.url, base_url=self.url, pipeline=self._pipeline, @@ -137,7 +136,6 @@ def __init__( allow_source_trailing_dot=self.allow_source_trailing_dot, file_request_intent=self.file_request_intent ) - self._client._config.version = self._api_version # type: ignore [assignment] async def __aenter__(self) -> Self: await self._client.__aenter__() From dab02f34b5a77be7b6186b8bbf810ee14c767e28 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 15:31:53 -0500 Subject: [PATCH 15/19] typo in blob tests --- sdk/storage/azure-storage-blob/tests/test_common_blob.py | 2 +- sdk/storage/azure-storage-blob/tests/test_common_blob_async.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob.py b/sdk/storage/azure-storage-blob/tests/test_common_blob.py index 3de8db31278e..074505aec045 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob.py @@ -3625,7 +3625,7 @@ def test_delete_blob_access_tier_conditionals(self, **kwargs): blob1.set_standard_blob_tier('Cool') blob2.set_standard_blob_tier('Hot') - late = self.get_datetime_variable(variables, 'late', datetime.utcnow()) + late = self.get_datetime_variable(variables, 'late', datetime.utcnow() + timedelta(hours=1)) with pytest.raises(HttpResponseError): blob1.delete_blob(access_tier_if_modified_since=late) diff --git a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py index 321a047381af..94ce920487f6 100644 --- a/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py +++ b/sdk/storage/azure-storage-blob/tests/test_common_blob_async.py @@ -3558,7 +3558,7 @@ async def test_delete_blob_access_tier_conditionals(self, **kwargs): await blob1.set_standard_blob_tier('Cool') await blob2.set_standard_blob_tier('Hot') - late = self.get_datetime_variable(variables, 'late', datetime.utcnow()) + late = self.get_datetime_variable(variables, 'late', datetime.utcnow() + timedelta(hours=1)) with pytest.raises(HttpResponseError): await blob1.delete_blob(access_tier_if_modified_since=late) From ad0461cbd633db58534fdae96095d4d6d1b4f2f2 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 15:37:46 -0500 Subject: [PATCH 16/19] Removed self._client._config.version from Queue --- .../azure/storage/queue/_queue_client.py | 6 +++--- .../azure/storage/queue/_queue_service_client.py | 6 +++--- .../azure/storage/queue/aio/_queue_client_async.py | 4 +--- .../azure/storage/queue/aio/_queue_service_client_async.py | 3 +-- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py index d8d8ff094bbd..7812bffb9602 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_client.py @@ -119,9 +119,9 @@ def __init__( ) self._message_encode_policy = message_encode_policy or NoEncodePolicy() self._message_decode_policy = message_decode_policy or NoDecodePolicy() - self._api_version = get_api_version(api_version) - self._client = AzureQueueStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = self._api_version # type: ignore [assignment] + self._client = AzureQueueStorage( + self.url, get_api_version(api_version), base_url=self.url, pipeline=self._pipeline + ) self._configure_encryption(kwargs) def __enter__(self) -> Self: diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py index 730f3155f379..4c2004122960 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/_queue_service_client.py @@ -116,9 +116,9 @@ def __init__( audience=audience, **kwargs, ) - self._api_version = get_api_version(api_version) - self._client = AzureQueueStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = self._api_version # type: ignore [assignment] + self._client = AzureQueueStorage( + self.url, get_api_version(api_version), base_url=self.url, pipeline=self._pipeline + ) self._configure_encryption(kwargs) def __enter__(self) -> Self: diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py index 51561bc5bd50..5134ea26a5ad 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_client_async.py @@ -132,11 +132,9 @@ def __init__( self._message_encode_policy = message_encode_policy or NoEncodePolicy() self._message_decode_policy = message_decode_policy or NoDecodePolicy() - self._api_version = get_api_version(api_version) self._client = AzureQueueStorage( - self.url, self._api_version, base_url=self.url, pipeline=self._pipeline, loop=loop + self.url, get_api_version(api_version), base_url=self.url, pipeline=self._pipeline, loop=loop ) - self._client._config.version = self._api_version # type: ignore [assignment] self._loop = loop self._configure_encryption(kwargs) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py index 6539b2e0e1ca..aa5e1dfab263 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py @@ -117,9 +117,8 @@ def __init__( ) self._api_version = get_api_version(api_version) self._client = AzureQueueStorage( - self.url, self._api_version, base_url=self.url, pipeline=self._pipeline, loop=loop + self.url, get_api_version(api_version), base_url=self.url, pipeline=self._pipeline, loop=loop ) - self._client._config.version = self._api_version # type: ignore [assignment] self._loop = loop self._configure_encryption(kwargs) From 64800d6d7debbfd7559376136e644530214a9659 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 15:47:01 -0500 Subject: [PATCH 17/19] Removed self._client._config.version from Blob --- .../azure-storage-blob/azure/storage/blob/_blob_client.py | 4 +--- .../azure/storage/blob/_blob_service_client.py | 4 +--- .../azure/storage/blob/_container_client.py | 7 +------ .../azure/storage/blob/aio/_blob_client_async.py | 4 +--- .../azure/storage/blob/aio/_blob_service_client_async.py | 4 +--- .../azure/storage/blob/aio/_container_client_async.py | 8 +------- 6 files changed, 6 insertions(+), 25 deletions(-) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index 595eab0b3618..54abb33c80a1 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -186,9 +186,7 @@ def __init__( self._raw_credential = credential if credential else sas_token self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._api_version = get_api_version(kwargs) - self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = self._api_version # type: ignore [assignment] + self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) self._configure_encryption(kwargs) def __enter__(self) -> Self: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py index 18c17b31fa63..2333d9558d11 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_service_client.py @@ -127,9 +127,7 @@ def __init__( _, sas_token = parse_query(parsed_url.query) self._query_str, credential = self._format_query_string(sas_token, credential) super(BlobServiceClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._api_version = get_api_version(kwargs) - self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = self._api_version # type: ignore [assignment] + self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) self._configure_encryption(kwargs) def __enter__(self) -> Self: 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 f587a9a2969d..121b3a04d041 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 @@ -147,7 +147,7 @@ def __init__( self._query_str, credential = self._format_query_string(sas_token, credential) super(ContainerClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) self._api_version = get_api_version(kwargs) - self._client = self._build_generated_client() + self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) self._configure_encryption(kwargs) def __enter__(self) -> Self: @@ -166,11 +166,6 @@ def close(self) -> None: """ self._client.close() - def _build_generated_client(self) -> AzureBlobStorage: - client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - client._config.version = self._api_version # type: ignore [assignment] # pylint: disable=protected-access - return client - def _format_url(self, hostname): return _format_url( container_name=self.container_name, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py index b8ccb01494cb..f1143006ec69 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_client_async.py @@ -196,9 +196,7 @@ def __init__( self._raw_credential = credential if credential else sas_token self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._api_version = get_api_version(kwargs) - self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = self._api_version # type: ignore [assignment] + self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) self._configure_encryption(kwargs) async def __aenter__(self) -> Self: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py index 35f4ec3eec78..8a4eb6bb03dd 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/aio/_blob_service_client_async.py @@ -135,9 +135,7 @@ def __init__( _, sas_token = parse_query(parsed_url.query) self._query_str, credential = self._format_query_string(sas_token, credential) super(BlobServiceClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._api_version = get_api_version(kwargs) - self._client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - self._client._config.version = self._api_version # type: ignore [assignment] + self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) self._configure_encryption(kwargs) async def __aenter__(self) -> Self: 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 f33c4dbe91f0..92c013f93ebd 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 @@ -143,8 +143,7 @@ def __init__( self._raw_credential = credential if credential else sas_token self._query_str, credential = self._format_query_string(sas_token, credential) super(ContainerClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._api_version = get_api_version(kwargs) - self._client = self._build_generated_client() + self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) self._configure_encryption(kwargs) async def __aenter__(self) -> Self: @@ -163,11 +162,6 @@ async def close(self) -> None: """ await self._client.close() - def _build_generated_client(self) -> AzureBlobStorage: - client = AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) - client._config.version = self._api_version # type: ignore [assignment] # pylint: disable=protected-access - return client - def _format_url(self, hostname): return _format_url( container_name=self.container_name, From 2504f95d765a1fdf81cad3afce24f37acb80bad2 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 16:33:41 -0500 Subject: [PATCH 18/19] Fixed blob tests --- .../azure/storage/blob/_container_client.py | 5 ++++- .../azure/storage/blob/aio/_container_client_async.py | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) 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 121b3a04d041..0415b58cec0d 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 @@ -147,7 +147,7 @@ def __init__( self._query_str, credential = self._format_query_string(sas_token, credential) super(ContainerClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) self._api_version = get_api_version(kwargs) - self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) + self._client = self._build_generated_client() self._configure_encryption(kwargs) def __enter__(self) -> Self: @@ -166,6 +166,9 @@ def close(self) -> None: """ self._client.close() + def _build_generated_client(self) -> AzureBlobStorage: + return AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + def _format_url(self, hostname): return _format_url( container_name=self.container_name, 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 92c013f93ebd..e08abc8d3ca6 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 @@ -143,7 +143,8 @@ def __init__( self._raw_credential = credential if credential else sas_token self._query_str, credential = self._format_query_string(sas_token, credential) super(ContainerClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) - self._client = AzureBlobStorage(self.url, get_api_version(kwargs), base_url=self.url, pipeline=self._pipeline) + self._api_version = get_api_version(kwargs) + self._client = self._build_generated_client() self._configure_encryption(kwargs) async def __aenter__(self) -> Self: @@ -162,6 +163,9 @@ async def close(self) -> None: """ await self._client.close() + def _build_generated_client(self) -> AzureBlobStorage: + return AzureBlobStorage(self.url, self._api_version, base_url=self.url, pipeline=self._pipeline) + def _format_url(self, hostname): return _format_url( container_name=self.container_name, From 18919348444afa5512b972a02a4f043695d4a074 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 23 Jan 2026 16:34:23 -0500 Subject: [PATCH 19/19] PR feedback --- .../azure/storage/queue/aio/_queue_service_client_async.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py index aa5e1dfab263..dfb65bfccd3a 100644 --- a/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py +++ b/sdk/storage/azure-storage-queue/azure/storage/queue/aio/_queue_service_client_async.py @@ -115,7 +115,6 @@ def __init__( audience=audience, **kwargs, ) - self._api_version = get_api_version(api_version) self._client = AzureQueueStorage( self.url, get_api_version(api_version), base_url=self.url, pipeline=self._pipeline, loop=loop )