azure-storage-blob 12.23.0b1__py3-none-any.whl → 12.24.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. azure/storage/blob/_blob_client.py +34 -10
  2. azure/storage/blob/_blob_client_helpers.py +7 -3
  3. azure/storage/blob/_blob_service_client.py +1 -1
  4. azure/storage/blob/_container_client.py +8 -2
  5. azure/storage/blob/_container_client_helpers.py +11 -6
  6. azure/storage/blob/_deserialize.py +2 -2
  7. azure/storage/blob/_encryption.py +15 -10
  8. azure/storage/blob/_generated/_azure_blob_storage.py +3 -2
  9. azure/storage/blob/_generated/_configuration.py +2 -2
  10. azure/storage/blob/_generated/_serialization.py +267 -150
  11. azure/storage/blob/_generated/aio/_azure_blob_storage.py +3 -2
  12. azure/storage/blob/_generated/aio/_configuration.py +2 -2
  13. azure/storage/blob/_generated/aio/operations/_append_blob_operations.py +23 -11
  14. azure/storage/blob/_generated/aio/operations/_blob_operations.py +137 -73
  15. azure/storage/blob/_generated/aio/operations/_block_blob_operations.py +42 -16
  16. azure/storage/blob/_generated/aio/operations/_container_operations.py +49 -44
  17. azure/storage/blob/_generated/aio/operations/_page_blob_operations.py +35 -23
  18. azure/storage/blob/_generated/aio/operations/_service_operations.py +30 -25
  19. azure/storage/blob/_generated/models/_azure_blob_storage_enums.py +1 -0
  20. azure/storage/blob/_generated/operations/_append_blob_operations.py +35 -15
  21. azure/storage/blob/_generated/operations/_blob_operations.py +187 -98
  22. azure/storage/blob/_generated/operations/_block_blob_operations.py +64 -22
  23. azure/storage/blob/_generated/operations/_container_operations.py +67 -62
  24. azure/storage/blob/_generated/operations/_page_blob_operations.py +52 -32
  25. azure/storage/blob/_generated/operations/_service_operations.py +38 -33
  26. azure/storage/blob/_list_blobs_helper.py +1 -1
  27. azure/storage/blob/_models.py +4 -3
  28. azure/storage/blob/_serialize.py +1 -0
  29. azure/storage/blob/_shared/avro/schema.py +1 -0
  30. azure/storage/blob/_shared/base_client.py +10 -8
  31. azure/storage/blob/_shared/base_client_async.py +5 -5
  32. azure/storage/blob/_shared/models.py +5 -2
  33. azure/storage/blob/_shared/policies.py +14 -16
  34. azure/storage/blob/_shared/policies_async.py +19 -6
  35. azure/storage/blob/_shared/request_handlers.py +2 -3
  36. azure/storage/blob/_shared/response_handlers.py +2 -2
  37. azure/storage/blob/_shared/uploads.py +4 -4
  38. azure/storage/blob/_shared/uploads_async.py +4 -4
  39. azure/storage/blob/_shared_access_signature.py +0 -1
  40. azure/storage/blob/_version.py +1 -1
  41. azure/storage/blob/aio/_blob_client_async.py +36 -13
  42. azure/storage/blob/aio/_blob_service_client_async.py +7 -3
  43. azure/storage/blob/aio/_container_client_async.py +10 -4
  44. azure/storage/blob/aio/_download_async.py +94 -71
  45. azure/storage/blob/aio/_lease_async.py +1 -1
  46. azure/storage/blob/aio/_list_blobs_helper.py +1 -2
  47. azure/storage/blob/aio/_models.py +1 -2
  48. {azure_storage_blob-12.23.0b1.dist-info → azure_storage_blob-12.24.0.dist-info}/METADATA +10 -10
  49. azure_storage_blob-12.24.0.dist-info/RECORD +84 -0
  50. {azure_storage_blob-12.23.0b1.dist-info → azure_storage_blob-12.24.0.dist-info}/WHEEL +1 -1
  51. azure/storage/blob/_generated/_vendor.py +0 -16
  52. azure_storage_blob-12.23.0b1.dist-info/RECORD +0 -85
  53. {azure_storage_blob-12.23.0b1.dist-info → azure_storage_blob-12.24.0.dist-info}/LICENSE +0 -0
  54. {azure_storage_blob-12.23.0b1.dist-info → azure_storage_blob-12.24.0.dist-info}/top_level.txt +0 -0
@@ -19,14 +19,12 @@ from azure.core.exceptions import (
19
19
  map_error,
20
20
  )
21
21
  from azure.core.pipeline import PipelineResponse
22
- from azure.core.pipeline.transport import HttpResponse
23
- from azure.core.rest import HttpRequest
22
+ from azure.core.rest import HttpRequest, HttpResponse
24
23
  from azure.core.tracing.decorator import distributed_trace
25
24
  from azure.core.utils import case_insensitive_dict
26
25
 
27
26
  from .. import models as _models
28
27
  from .._serialization import Serializer
29
- from .._vendor import _convert_request
30
28
 
31
29
  if sys.version_info >= (3, 9):
32
30
  from collections.abc import MutableMapping
@@ -70,6 +68,8 @@ def build_upload_request(
70
68
  immutability_policy_mode: Optional[Union[str, _models.BlobImmutabilityPolicyMode]] = None,
71
69
  legal_hold: Optional[bool] = None,
72
70
  transactional_content_crc64: Optional[bytes] = None,
71
+ structured_body_type: Optional[str] = None,
72
+ structured_content_length: Optional[int] = None,
73
73
  **kwargs: Any
74
74
  ) -> HttpRequest:
75
75
  _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
@@ -77,7 +77,7 @@ def build_upload_request(
77
77
 
78
78
  blob_type: Literal["BlockBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "BlockBlob"))
79
79
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
80
- version: Literal["2024-08-04"] = kwargs.pop("version", _headers.pop("x-ms-version", "2024-08-04"))
80
+ version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
81
81
  accept = _headers.pop("Accept", "application/xml")
82
82
 
83
83
  # Construct URL
@@ -162,6 +162,12 @@ def build_upload_request(
162
162
  _headers["x-ms-content-crc64"] = _SERIALIZER.header(
163
163
  "transactional_content_crc64", transactional_content_crc64, "bytearray"
164
164
  )
165
+ if structured_body_type is not None:
166
+ _headers["x-ms-structured-body"] = _SERIALIZER.header("structured_body_type", structured_body_type, "str")
167
+ if structured_content_length is not None:
168
+ _headers["x-ms-structured-content-length"] = _SERIALIZER.header(
169
+ "structured_content_length", structured_content_length, "int"
170
+ )
165
171
  if content_type is not None:
166
172
  _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
167
173
  _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
@@ -211,7 +217,7 @@ def build_put_blob_from_url_request(
211
217
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
212
218
 
213
219
  blob_type: Literal["BlockBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "BlockBlob"))
214
- version: Literal["2024-08-04"] = kwargs.pop("version", _headers.pop("x-ms-version", "2024-08-04"))
220
+ version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
215
221
  accept = _headers.pop("Accept", "application/xml")
216
222
 
217
223
  # Construct URL
@@ -329,6 +335,8 @@ def build_stage_block_request(
329
335
  encryption_algorithm: Optional[Union[str, _models.EncryptionAlgorithmType]] = None,
330
336
  encryption_scope: Optional[str] = None,
331
337
  request_id_parameter: Optional[str] = None,
338
+ structured_body_type: Optional[str] = None,
339
+ structured_content_length: Optional[int] = None,
332
340
  **kwargs: Any
333
341
  ) -> HttpRequest:
334
342
  _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
@@ -336,7 +344,7 @@ def build_stage_block_request(
336
344
 
337
345
  comp: Literal["block"] = kwargs.pop("comp", _params.pop("comp", "block"))
338
346
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
339
- version: Literal["2024-08-04"] = kwargs.pop("version", _headers.pop("x-ms-version", "2024-08-04"))
347
+ version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
340
348
  accept = _headers.pop("Accept", "application/xml")
341
349
 
342
350
  # Construct URL
@@ -378,6 +386,12 @@ def build_stage_block_request(
378
386
  _headers["x-ms-version"] = _SERIALIZER.header("version", version, "str")
379
387
  if request_id_parameter is not None:
380
388
  _headers["x-ms-client-request-id"] = _SERIALIZER.header("request_id_parameter", request_id_parameter, "str")
389
+ if structured_body_type is not None:
390
+ _headers["x-ms-structured-body"] = _SERIALIZER.header("structured_body_type", structured_body_type, "str")
391
+ if structured_content_length is not None:
392
+ _headers["x-ms-structured-content-length"] = _SERIALIZER.header(
393
+ "structured_content_length", structured_content_length, "int"
394
+ )
381
395
  if content_type is not None:
382
396
  _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
383
397
  _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
@@ -412,7 +426,7 @@ def build_stage_block_from_url_request(
412
426
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
413
427
 
414
428
  comp: Literal["block"] = kwargs.pop("comp", _params.pop("comp", "block"))
415
- version: Literal["2024-08-04"] = kwargs.pop("version", _headers.pop("x-ms-version", "2024-08-04"))
429
+ version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
416
430
  accept = _headers.pop("Accept", "application/xml")
417
431
 
418
432
  # Construct URL
@@ -513,7 +527,7 @@ def build_commit_block_list_request(
513
527
 
514
528
  comp: Literal["blocklist"] = kwargs.pop("comp", _params.pop("comp", "blocklist"))
515
529
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
516
- version: Literal["2024-08-04"] = kwargs.pop("version", _headers.pop("x-ms-version", "2024-08-04"))
530
+ version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
517
531
  accept = _headers.pop("Accept", "application/xml")
518
532
 
519
533
  # Construct URL
@@ -619,7 +633,7 @@ def build_get_block_list_request(
619
633
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
620
634
 
621
635
  comp: Literal["blocklist"] = kwargs.pop("comp", _params.pop("comp", "blocklist"))
622
- version: Literal["2024-08-04"] = kwargs.pop("version", _headers.pop("x-ms-version", "2024-08-04"))
636
+ version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
623
637
  accept = _headers.pop("Accept", "application/xml")
624
638
 
625
639
  # Construct URL
@@ -685,6 +699,8 @@ class BlockBlobOperations:
685
699
  immutability_policy_mode: Optional[Union[str, _models.BlobImmutabilityPolicyMode]] = None,
686
700
  legal_hold: Optional[bool] = None,
687
701
  transactional_content_crc64: Optional[bytes] = None,
702
+ structured_body_type: Optional[str] = None,
703
+ structured_content_length: Optional[int] = None,
688
704
  blob_http_headers: Optional[_models.BlobHTTPHeaders] = None,
689
705
  lease_access_conditions: Optional[_models.LeaseAccessConditions] = None,
690
706
  cpk_info: Optional[_models.CpkInfo] = None,
@@ -692,6 +708,7 @@ class BlockBlobOperations:
692
708
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
693
709
  **kwargs: Any
694
710
  ) -> None:
711
+ # pylint: disable=line-too-long
695
712
  """The Upload Block Blob operation updates the content of an existing block blob. Updating an
696
713
  existing block blob overwrites any existing metadata on the blob. Partial updates are not
697
714
  supported with Put Blob; the content of the existing blob is overwritten with the content of
@@ -740,6 +757,13 @@ class BlockBlobOperations:
740
757
  :param transactional_content_crc64: Specify the transactional crc64 for the body, to be
741
758
  validated by the service. Default value is None.
742
759
  :type transactional_content_crc64: bytes
760
+ :param structured_body_type: Required if the request body is a structured message. Specifies
761
+ the message schema version and properties. Default value is None.
762
+ :type structured_body_type: str
763
+ :param structured_content_length: Required if the request body is a structured message.
764
+ Specifies the length of the blob/file content inside the message body. Will always be smaller
765
+ than Content-Length. Default value is None.
766
+ :type structured_content_length: int
743
767
  :param blob_http_headers: Parameter group. Default value is None.
744
768
  :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders
745
769
  :param lease_access_conditions: Parameter group. Default value is None.
@@ -754,7 +778,7 @@ class BlockBlobOperations:
754
778
  :rtype: None
755
779
  :raises ~azure.core.exceptions.HttpResponseError:
756
780
  """
757
- error_map: MutableMapping[int, Type[HttpResponseError]] = {
781
+ error_map: MutableMapping[int, Type[HttpResponseError]] = { # pylint: disable=unsubscriptable-object
758
782
  401: ClientAuthenticationError,
759
783
  404: ResourceNotFoundError,
760
784
  409: ResourceExistsError,
@@ -837,6 +861,8 @@ class BlockBlobOperations:
837
861
  immutability_policy_mode=immutability_policy_mode,
838
862
  legal_hold=legal_hold,
839
863
  transactional_content_crc64=transactional_content_crc64,
864
+ structured_body_type=structured_body_type,
865
+ structured_content_length=structured_content_length,
840
866
  blob_type=blob_type,
841
867
  content_type=content_type,
842
868
  version=self._config.version,
@@ -844,7 +870,6 @@ class BlockBlobOperations:
844
870
  headers=_headers,
845
871
  params=_params,
846
872
  )
847
- _request = _convert_request(_request)
848
873
  _request.url = self._client.format_url(_request.url)
849
874
 
850
875
  _stream = False
@@ -879,6 +904,9 @@ class BlockBlobOperations:
879
904
  response_headers["x-ms-encryption-scope"] = self._deserialize(
880
905
  "str", response.headers.get("x-ms-encryption-scope")
881
906
  )
907
+ response_headers["x-ms-structured-body"] = self._deserialize(
908
+ "str", response.headers.get("x-ms-structured-body")
909
+ )
882
910
 
883
911
  if cls:
884
912
  return cls(pipeline_response, None, response_headers) # type: ignore
@@ -906,6 +934,7 @@ class BlockBlobOperations:
906
934
  source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None,
907
935
  **kwargs: Any
908
936
  ) -> None:
937
+ # pylint: disable=line-too-long
909
938
  """The Put Blob from URL operation creates a new Block Blob where the contents of the blob are
910
939
  read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial
911
940
  updates are not supported with Put Blob from URL; the content of an existing blob is
@@ -976,7 +1005,7 @@ class BlockBlobOperations:
976
1005
  :rtype: None
977
1006
  :raises ~azure.core.exceptions.HttpResponseError:
978
1007
  """
979
- error_map: MutableMapping[int, Type[HttpResponseError]] = {
1008
+ error_map: MutableMapping[int, Type[HttpResponseError]] = { # pylint: disable=unsubscriptable-object
980
1009
  401: ClientAuthenticationError,
981
1010
  404: ResourceNotFoundError,
982
1011
  409: ResourceExistsError,
@@ -1079,7 +1108,6 @@ class BlockBlobOperations:
1079
1108
  headers=_headers,
1080
1109
  params=_params,
1081
1110
  )
1082
- _request = _convert_request(_request)
1083
1111
  _request.url = self._client.format_url(_request.url)
1084
1112
 
1085
1113
  _stream = False
@@ -1128,11 +1156,14 @@ class BlockBlobOperations:
1128
1156
  transactional_content_crc64: Optional[bytes] = None,
1129
1157
  timeout: Optional[int] = None,
1130
1158
  request_id_parameter: Optional[str] = None,
1159
+ structured_body_type: Optional[str] = None,
1160
+ structured_content_length: Optional[int] = None,
1131
1161
  lease_access_conditions: Optional[_models.LeaseAccessConditions] = None,
1132
1162
  cpk_info: Optional[_models.CpkInfo] = None,
1133
1163
  cpk_scope_info: Optional[_models.CpkScopeInfo] = None,
1134
1164
  **kwargs: Any
1135
1165
  ) -> None:
1166
+ # pylint: disable=line-too-long
1136
1167
  """The Stage Block operation creates a new block to be committed as part of a blob.
1137
1168
 
1138
1169
  :param block_id: A valid Base64 string value that identifies the block. Prior to encoding, the
@@ -1158,6 +1189,13 @@ class BlockBlobOperations:
1158
1189
  limit that is recorded in the analytics logs when storage analytics logging is enabled. Default
1159
1190
  value is None.
1160
1191
  :type request_id_parameter: str
1192
+ :param structured_body_type: Required if the request body is a structured message. Specifies
1193
+ the message schema version and properties. Default value is None.
1194
+ :type structured_body_type: str
1195
+ :param structured_content_length: Required if the request body is a structured message.
1196
+ Specifies the length of the blob/file content inside the message body. Will always be smaller
1197
+ than Content-Length. Default value is None.
1198
+ :type structured_content_length: int
1161
1199
  :param lease_access_conditions: Parameter group. Default value is None.
1162
1200
  :type lease_access_conditions: ~azure.storage.blob.models.LeaseAccessConditions
1163
1201
  :param cpk_info: Parameter group. Default value is None.
@@ -1168,7 +1206,7 @@ class BlockBlobOperations:
1168
1206
  :rtype: None
1169
1207
  :raises ~azure.core.exceptions.HttpResponseError:
1170
1208
  """
1171
- error_map: MutableMapping[int, Type[HttpResponseError]] = {
1209
+ error_map: MutableMapping[int, Type[HttpResponseError]] = { # pylint: disable=unsubscriptable-object
1172
1210
  401: ClientAuthenticationError,
1173
1211
  404: ResourceNotFoundError,
1174
1212
  409: ResourceExistsError,
@@ -1211,6 +1249,8 @@ class BlockBlobOperations:
1211
1249
  encryption_algorithm=_encryption_algorithm,
1212
1250
  encryption_scope=_encryption_scope,
1213
1251
  request_id_parameter=request_id_parameter,
1252
+ structured_body_type=structured_body_type,
1253
+ structured_content_length=structured_content_length,
1214
1254
  comp=comp,
1215
1255
  content_type=content_type,
1216
1256
  version=self._config.version,
@@ -1218,7 +1258,6 @@ class BlockBlobOperations:
1218
1258
  headers=_headers,
1219
1259
  params=_params,
1220
1260
  )
1221
- _request = _convert_request(_request)
1222
1261
  _request.url = self._client.format_url(_request.url)
1223
1262
 
1224
1263
  _stream = False
@@ -1253,6 +1292,9 @@ class BlockBlobOperations:
1253
1292
  response_headers["x-ms-encryption-scope"] = self._deserialize(
1254
1293
  "str", response.headers.get("x-ms-encryption-scope")
1255
1294
  )
1295
+ response_headers["x-ms-structured-body"] = self._deserialize(
1296
+ "str", response.headers.get("x-ms-structured-body")
1297
+ )
1256
1298
 
1257
1299
  if cls:
1258
1300
  return cls(pipeline_response, None, response_headers) # type: ignore
@@ -1275,6 +1317,7 @@ class BlockBlobOperations:
1275
1317
  source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None,
1276
1318
  **kwargs: Any
1277
1319
  ) -> None:
1320
+ # pylint: disable=line-too-long
1278
1321
  """The Stage Block operation creates a new block to be committed as part of a blob where the
1279
1322
  contents are read from a URL.
1280
1323
 
@@ -1319,7 +1362,7 @@ class BlockBlobOperations:
1319
1362
  :rtype: None
1320
1363
  :raises ~azure.core.exceptions.HttpResponseError:
1321
1364
  """
1322
- error_map: MutableMapping[int, Type[HttpResponseError]] = {
1365
+ error_map: MutableMapping[int, Type[HttpResponseError]] = { # pylint: disable=unsubscriptable-object
1323
1366
  401: ClientAuthenticationError,
1324
1367
  404: ResourceNotFoundError,
1325
1368
  409: ResourceExistsError,
@@ -1381,7 +1424,6 @@ class BlockBlobOperations:
1381
1424
  headers=_headers,
1382
1425
  params=_params,
1383
1426
  )
1384
- _request = _convert_request(_request)
1385
1427
  _request.url = self._client.format_url(_request.url)
1386
1428
 
1387
1429
  _stream = False
@@ -1441,6 +1483,7 @@ class BlockBlobOperations:
1441
1483
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1442
1484
  **kwargs: Any
1443
1485
  ) -> None:
1486
+ # pylint: disable=line-too-long
1444
1487
  """The Commit Block List operation writes a blob by specifying the list of block IDs that make up
1445
1488
  the blob. In order to be written as part of a blob, a block must have been successfully written
1446
1489
  to the server in a prior Put Block operation. You can call Put Block List to update a blob by
@@ -1503,7 +1546,7 @@ class BlockBlobOperations:
1503
1546
  :rtype: None
1504
1547
  :raises ~azure.core.exceptions.HttpResponseError:
1505
1548
  """
1506
- error_map: MutableMapping[int, Type[HttpResponseError]] = {
1549
+ error_map: MutableMapping[int, Type[HttpResponseError]] = { # pylint: disable=unsubscriptable-object
1507
1550
  401: ClientAuthenticationError,
1508
1551
  404: ResourceNotFoundError,
1509
1552
  409: ResourceExistsError,
@@ -1592,7 +1635,6 @@ class BlockBlobOperations:
1592
1635
  headers=_headers,
1593
1636
  params=_params,
1594
1637
  )
1595
- _request = _convert_request(_request)
1596
1638
  _request.url = self._client.format_url(_request.url)
1597
1639
 
1598
1640
  _stream = False
@@ -1645,6 +1687,7 @@ class BlockBlobOperations:
1645
1687
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1646
1688
  **kwargs: Any
1647
1689
  ) -> _models.BlockList:
1690
+ # pylint: disable=line-too-long
1648
1691
  """The Get Block List operation retrieves the list of blocks that have been uploaded as part of a
1649
1692
  block blob.
1650
1693
 
@@ -1675,7 +1718,7 @@ class BlockBlobOperations:
1675
1718
  :rtype: ~azure.storage.blob.models.BlockList
1676
1719
  :raises ~azure.core.exceptions.HttpResponseError:
1677
1720
  """
1678
- error_map: MutableMapping[int, Type[HttpResponseError]] = {
1721
+ error_map: MutableMapping[int, Type[HttpResponseError]] = { # pylint: disable=unsubscriptable-object
1679
1722
  401: ClientAuthenticationError,
1680
1723
  404: ResourceNotFoundError,
1681
1724
  409: ResourceExistsError,
@@ -1709,7 +1752,6 @@ class BlockBlobOperations:
1709
1752
  headers=_headers,
1710
1753
  params=_params,
1711
1754
  )
1712
- _request = _convert_request(_request)
1713
1755
  _request.url = self._client.format_url(_request.url)
1714
1756
 
1715
1757
  _stream = False
@@ -1738,7 +1780,7 @@ class BlockBlobOperations:
1738
1780
  response_headers["x-ms-version"] = self._deserialize("str", response.headers.get("x-ms-version"))
1739
1781
  response_headers["Date"] = self._deserialize("rfc-1123", response.headers.get("Date"))
1740
1782
 
1741
- deserialized = self._deserialize("BlockList", pipeline_response)
1783
+ deserialized = self._deserialize("BlockList", pipeline_response.http_response)
1742
1784
 
1743
1785
  if cls:
1744
1786
  return cls(pipeline_response, deserialized, response_headers) # type: ignore