Repository: Azure/azure-sdk-for-rust (Rust)

Issue:
Incorrect serde rename for etag in BlobPropertiesInternal struct
### Bug Title

Incorrect serde rename for etag in BlobPropertiesInternal struct

### Crate Name

azure_storage_blob

### Crate Version

0.3.0

### Description

In the `BlobPropertiesInternal` struct the `etag` field uses `#[serde(rename = "ETag", ...)]`. According to the [REST API documentation](https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs) the correct field name should be `Etag`. 

This mismatch leads to etag property of the blob always being None.

### Steps to Reproduce

Invoke `BlobContainerClient.list_blobs`, observe that blob's etag property is always `None`.

### Checklist

- [x] Follow our [Code of Conduct](https://github.com/Azure/azure-sdk-for-rust/blob/main/CODE_OF_CONDUCT.md)
- [x] Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
- [x] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.


Discussion:
Hi @gafiatulin Victor, thanks for your inquiry. I have been able to reproduce the issue locally, and have since corrected in a following PR. The fix should be available an upcoming release. Thanks!



Patch:
diff --git a/sdk/storage/azure_storage_blob/src/generated/models/pub_models.rs b/sdk/storage/azure_storage_blob/src/generated/models/pub_models.rs
index c53356b7a9..0ebf6563c6 100644
--- a/sdk/storage/azure_storage_blob/src/generated/models/pub_models.rs
+++ b/sdk/storage/azure_storage_blob/src/generated/models/pub_models.rs
@@ -456,7 +456,7 @@ pub struct BlobPropertiesInternal {
     pub encryption_scope: Option<String>,
 
     /// The blog ETag.
-    #[serde(rename = "ETag", skip_serializing_if = "Option::is_none")]
+    #[serde(rename = "Etag", skip_serializing_if = "Option::is_none")]
     pub etag: Option<String>,
 
     /// The expire time of the blob.
diff --git a/sdk/storage/azure_storage_blob/tsp-location.yaml b/sdk/storage/azure_storage_blob/tsp-location.yaml
index 73d9db1736..effaaffe80 100644
--- a/sdk/storage/azure_storage_blob/tsp-location.yaml
+++ b/sdk/storage/azure_storage_blob/tsp-location.yaml
@@ -1,4 +1,4 @@
 directory: specification/storage/Microsoft.BlobStorage
-commit: ac2d7f6cf9e37d6d4d35bd917bd2a06c31f9c1c4
+commit: 107ee0188cea644df542eb028052d671eb8293d5
 repo: Azure/azure-rest-api-specs
 additionalDirectories: 


Test patch:
diff --git a/sdk/storage/azure_storage_blob/tests/blob_container_client.rs b/sdk/storage/azure_storage_blob/tests/blob_container_client.rs
index 65420e18fb..79ebc320f9 100644
--- a/sdk/storage/azure_storage_blob/tests/blob_container_client.rs
+++ b/sdk/storage/azure_storage_blob/tests/blob_container_client.rs
@@ -106,9 +106,12 @@ async fn test_list_blobs(ctx: TestContext) -> Result<(), Box<dyn Error>> {
     let blob_list = list_blob_segment_response.segment.blob_items;
     for blob in blob_list {
         let blob_name = blob.name.unwrap().content.unwrap();
-        let blob_type = blob.properties.unwrap().blob_type.unwrap();
+        let properties = blob.properties.unwrap();
+        let blob_type = properties.blob_type.unwrap();
+        let etag = properties.etag;
         assert!(blob_names.contains(&blob_name));
         assert_eq!(BlobType::BlockBlob, blob_type);
+        assert!(etag.is_some());
     }
 
     container_client.delete_container(None).await?;