diff --git a/sdk/storage/assets.json b/sdk/storage/assets.json index 1ca6d58c9b..57166da77f 100644 --- a/sdk/storage/assets.json +++ b/sdk/storage/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "cpp", "TagPrefix": "cpp/storage", - "Tag": "cpp/storage_f8b8f80b3c" + "Tag": "cpp/storage_67aff8fa0e" } diff --git a/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/rest_client.hpp b/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/rest_client.hpp index 0f82a2f09c..322f3f10a4 100644 --- a/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/rest_client.hpp +++ b/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/rest_client.hpp @@ -31,7 +31,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { /** * The version used for the operations to Azure storage services. */ - constexpr static const char* ApiVersion = "2023-01-03"; + constexpr static const char* ApiVersion = "2024-02-04"; } // namespace _detail namespace Models { /** @@ -1300,6 +1300,10 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { * Client IP that opened the handle. */ std::string ClientIp; + /** + * Name of the client machine where the share is being mounted. + */ + std::string ClientName; /** * Time when the session that previously opened the handle has last been reconnected. (UTC). */ diff --git a/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp b/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp index 342e0a1351..ae875ca949 100644 --- a/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp +++ b/sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_responses.hpp @@ -300,6 +300,10 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { * Client IP that opened the handle. */ std::string ClientIp; + /** + * Name of the client machine where the share is being mounted. + */ + std::string ClientName; /** * Time when the session that previously opened the handle has last been reconnected. (UTC). */ diff --git a/sdk/storage/azure-storage-files-shares/src/rest_client.cpp b/sdk/storage/azure-storage-files-shares/src/rest_client.cpp index ab3a915c0e..80d33d0542 100644 --- a/sdk/storage/azure-storage-files-shares/src/rest_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/rest_client.cpp @@ -317,7 +317,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader("Content-Length", std::to_string(requestBody.Length())); request.GetUrl().AppendQueryParameter("restype", "service"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Accepted) @@ -337,7 +337,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "service"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); (void)options; auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); @@ -569,7 +569,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { _internal::UrlEncodeQueryParameter( ListSharesIncludeFlagsToString(options.Include.Value()))); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Ok) @@ -922,7 +922,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-access-tier", options.AccessTier.Value().ToString()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.EnabledProtocols.HasValue() && !options.EnabledProtocols.Value().ToString().empty()) { @@ -957,7 +957,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.GetUrl().AppendQueryParameter( "sharesnapshot", _internal::UrlEncodeQueryParameter(options.Sharesnapshot.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -1059,7 +1059,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.GetUrl().AppendQueryParameter( "sharesnapshot", _internal::UrlEncodeQueryParameter(options.Sharesnapshot.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.DeleteSnapshots.HasValue() && !options.DeleteSnapshots.Value().ToString().empty()) { request.SetHeader("x-ms-delete-snapshots", options.DeleteSnapshots.Value().ToString()); @@ -1095,7 +1095,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-proposed-lease-id", options.ProposedLeaseId.Value()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Sharesnapshot.HasValue() && !options.Sharesnapshot.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -1129,7 +1129,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-lease-id", options.LeaseId); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Sharesnapshot.HasValue() && !options.Sharesnapshot.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -1166,7 +1166,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-proposed-lease-id", options.ProposedLeaseId.Value()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Sharesnapshot.HasValue() && !options.Sharesnapshot.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -1200,7 +1200,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-lease-id", options.LeaseId); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Sharesnapshot.HasValue() && !options.Sharesnapshot.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -1238,7 +1238,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Sharesnapshot.HasValue() && !options.Sharesnapshot.Value().empty()) { request.GetUrl().AppendQueryParameter( @@ -1271,7 +1271,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-meta-" + p.first, p.second); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); auto pRawResponse = pipeline.Send(request, context); auto httpStatusCode = pRawResponse->GetStatusCode(); if (httpStatusCode != Core::Http::HttpStatusCode::Created) @@ -1305,7 +1305,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader("Content-Length", std::to_string(requestBody.Length())); request.GetUrl().AppendQueryParameter("restype", "share"); request.GetUrl().AppendQueryParameter("comp", "filepermission"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FileRequestIntent.HasValue() && !options.FileRequestIntent.Value().ToString().empty()) { @@ -1335,7 +1335,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-file-permission-key", options.FilePermissionKey); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FileRequestIntent.HasValue() && !options.FileRequestIntent.Value().ToString().empty()) { @@ -1366,7 +1366,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("restype", "share"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Quota.HasValue()) { request.SetHeader("x-ms-share-quota", std::to_string(options.Quota.Value())); @@ -1409,7 +1409,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-meta-" + p.first, p.second); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -1435,7 +1435,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "share"); request.GetUrl().AppendQueryParameter("comp", "acl"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -1582,7 +1582,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader("Content-Length", std::to_string(requestBody.Length())); request.GetUrl().AppendQueryParameter("restype", "share"); request.GetUrl().AppendQueryParameter("comp", "acl"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -1609,7 +1609,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { auto request = Core::Http::Request(Core::Http::HttpMethod::Get, url); request.GetUrl().AppendQueryParameter("restype", "share"); request.GetUrl().AppendQueryParameter("comp", "stats"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -1695,7 +1695,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-meta-" + p.first, p.second); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FilePermission.HasValue() && !options.FilePermission.Value().empty()) { request.SetHeader("x-ms-file-permission", options.FilePermission.Value()); @@ -1784,7 +1784,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.GetUrl().AppendQueryParameter( "sharesnapshot", _internal::UrlEncodeQueryParameter(options.Sharesnapshot.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FileRequestIntent.HasValue() && !options.FileRequestIntent.Value().ToString().empty()) { @@ -1850,7 +1850,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader( "x-ms-allow-trailing-dot", options.AllowTrailingDot.Value() ? "true" : "false"); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FileRequestIntent.HasValue() && !options.FileRequestIntent.Value().ToString().empty()) { @@ -1874,7 +1874,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("restype", "directory"); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FilePermission.HasValue() && !options.FilePermission.Value().empty()) { request.SetHeader("x-ms-file-permission", options.FilePermission.Value()); @@ -1964,7 +1964,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-meta-" + p.first, p.second); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -2018,7 +2018,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.GetUrl().AppendQueryParameter( "maxresults", std::to_string(options.MaxResults.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Include.HasValue() && !ListFilesIncludeFlagsToString(options.Include.Value()).empty()) { @@ -2411,7 +2411,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-recursive", options.Recursive.Value() ? "true" : "false"); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -2445,6 +2445,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { kParentId, kSessionId, kClientIp, + kClientName, kOpenTime, kLastReconnectTime, kAccessRightList, @@ -2461,6 +2462,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { {"ParentId", XmlTagEnum::kParentId}, {"SessionId", XmlTagEnum::kSessionId}, {"ClientIp", XmlTagEnum::kClientIp}, + {"ClientName", XmlTagEnum::kClientName}, {"OpenTime", XmlTagEnum::kOpenTime}, {"LastReconnectTime", XmlTagEnum::kLastReconnectTime}, {"AccessRightList", XmlTagEnum::kAccessRightList}, @@ -2525,6 +2527,13 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { vectorElement1.ClientIp = node.Value; } + else if ( + xmlPath.size() == 4 && xmlPath[0] == XmlTagEnum::kEnumerationResults + && xmlPath[1] == XmlTagEnum::kEntries && xmlPath[2] == XmlTagEnum::kHandle + && xmlPath[3] == XmlTagEnum::kClientName) + { + vectorElement1.ClientName = node.Value; + } else if ( xmlPath.size() == 4 && xmlPath[0] == XmlTagEnum::kEnumerationResults && xmlPath[1] == XmlTagEnum::kEntries && xmlPath[2] == XmlTagEnum::kHandle @@ -2615,7 +2624,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-recursive", options.Recursive.Value() ? "true" : "false"); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -2653,7 +2662,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("restype", "directory"); request.GetUrl().AppendQueryParameter("comp", "rename"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (!options.RenameSource.empty()) { request.SetHeader("x-ms-file-rename-source", options.RenameSource); @@ -2761,7 +2770,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader( "x-ms-allow-trailing-dot", options.AllowTrailingDot.Value() ? "true" : "false"); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); request.SetHeader("x-ms-content-length", std::to_string(options.FileContentLength)); request.SetHeader("x-ms-type", "file"); if (options.FileContentType.HasValue() && !options.FileContentType.Value().empty()) @@ -2881,7 +2890,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader( "x-ms-allow-trailing-dot", options.AllowTrailingDot.Value() ? "true" : "false"); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Range.HasValue() && !options.Range.Value().empty()) { request.SetHeader("x-ms-range", options.Range.Value()); @@ -3066,7 +3075,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.GetUrl().AppendQueryParameter( "sharesnapshot", _internal::UrlEncodeQueryParameter(options.Sharesnapshot.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -3204,7 +3213,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.SetHeader( "x-ms-allow-trailing-dot", options.AllowTrailingDot.Value() ? "true" : "false"); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -3231,7 +3240,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "properties"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.FileContentLength.HasValue()) { request.SetHeader("x-ms-content-length", std::to_string(options.FileContentLength.Value())); @@ -3355,7 +3364,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-meta-" + p.first, p.second); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -3399,7 +3408,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-proposed-lease-id", options.ProposedLeaseId.Value()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -3437,7 +3446,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-lease-id", options.LeaseId); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -3478,7 +3487,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-proposed-lease-id", options.ProposedLeaseId.Value()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -3516,7 +3525,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -3563,7 +3572,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("Content-MD5", Core::Convert::Base64Encode(options.ContentMD5.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -3650,7 +3659,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { "x-ms-source-if-none-match-crc64", Core::Convert::Base64Encode(options.SourceIfNoneMatchCrc64.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -3726,7 +3735,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { "prevsharesnapshot", _internal::UrlEncodeQueryParameter(options.Prevsharesnapshot.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.Range.HasValue() && !options.Range.Value().empty()) { request.SetHeader("x-ms-range", options.Range.Value()); @@ -3850,7 +3859,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { const Core::Context& context) { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); for (const auto& p : options.Metadata) { request.SetHeader("x-ms-meta-" + p.first, p.second); @@ -3948,7 +3957,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { "copyid", _internal::UrlEncodeQueryParameter(options.CopyId)); } request.SetHeader("x-ms-copy-action", "abort"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.LeaseId.HasValue() && !options.LeaseId.Value().empty()) { request.SetHeader("x-ms-lease-id", options.LeaseId.Value()); @@ -3995,7 +4004,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { request.GetUrl().AppendQueryParameter( "sharesnapshot", _internal::UrlEncodeQueryParameter(options.Sharesnapshot.Value())); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -4029,6 +4038,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { kParentId, kSessionId, kClientIp, + kClientName, kOpenTime, kLastReconnectTime, kAccessRightList, @@ -4045,6 +4055,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { {"ParentId", XmlTagEnum::kParentId}, {"SessionId", XmlTagEnum::kSessionId}, {"ClientIp", XmlTagEnum::kClientIp}, + {"ClientName", XmlTagEnum::kClientName}, {"OpenTime", XmlTagEnum::kOpenTime}, {"LastReconnectTime", XmlTagEnum::kLastReconnectTime}, {"AccessRightList", XmlTagEnum::kAccessRightList}, @@ -4109,6 +4120,13 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { vectorElement1.ClientIp = node.Value; } + else if ( + xmlPath.size() == 4 && xmlPath[0] == XmlTagEnum::kEnumerationResults + && xmlPath[1] == XmlTagEnum::kEntries && xmlPath[2] == XmlTagEnum::kHandle + && xmlPath[3] == XmlTagEnum::kClientName) + { + vectorElement1.ClientName = node.Value; + } else if ( xmlPath.size() == 4 && xmlPath[0] == XmlTagEnum::kEnumerationResults && xmlPath[1] == XmlTagEnum::kEntries && xmlPath[2] == XmlTagEnum::kHandle @@ -4195,7 +4213,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { request.SetHeader("x-ms-handle-id", options.HandleId); } - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (options.AllowTrailingDot.HasValue()) { request.SetHeader( @@ -4232,7 +4250,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { { auto request = Core::Http::Request(Core::Http::HttpMethod::Put, url); request.GetUrl().AppendQueryParameter("comp", "rename"); - request.SetHeader("x-ms-version", "2023-01-03"); + request.SetHeader("x-ms-version", "2024-02-04"); if (!options.RenameSource.empty()) { request.SetHeader("x-ms-file-rename-source", options.RenameSource); diff --git a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp index b7c1baa2e9..64c86dac3c 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp @@ -587,6 +587,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { directoryHandle.Path = std::move(handle.Path.Content); } directoryHandle.ClientIp = std::move(handle.ClientIp); + directoryHandle.ClientName = std::move(handle.ClientName); directoryHandle.FileId = std::move(handle.FileId); directoryHandle.HandleId = std::move(handle.HandleId); directoryHandle.LastReconnectedOn = std::move(handle.LastReconnectedOn); diff --git a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp index aa509fdc88..12ade37bc4 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp @@ -692,6 +692,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { fileHandle.Path = std::move(handle.Path.Content); } fileHandle.ClientIp = std::move(handle.ClientIp); + fileHandle.ClientName = std::move(handle.ClientName); fileHandle.FileId = std::move(handle.FileId); fileHandle.HandleId = std::move(handle.HandleId); fileHandle.LastReconnectedOn = std::move(handle.LastReconnectedOn); diff --git a/sdk/storage/azure-storage-files-shares/swagger/README.md b/sdk/storage/azure-storage-files-shares/swagger/README.md index a7ed8eaaea..baac9d0deb 100644 --- a/sdk/storage/azure-storage-files-shares/swagger/README.md +++ b/sdk/storage/azure-storage-files-shares/swagger/README.md @@ -9,7 +9,7 @@ package-name: azure-storage-files-shares namespace: Azure::Storage::Files::Shares output-folder: generated clear-output-folder: true -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.FileStorage/preview/2023-08-03/file.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.FileStorage/preview/2024-02-04/file.json ``` ## ModelFour Options @@ -79,12 +79,12 @@ directive: "name": "ApiVersion", "modelAsString": false }, - "enum": ["2023-01-03"] + "enum": ["2024-02-04"] }; - from: swagger-document where: $.parameters transform: > - $.ApiVersionParameter.enum[0] = "2023-01-03"; + $.ApiVersionParameter.enum[0] = "2024-02-04"; ``` ### Rename Operations diff --git a/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp b/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp index cd49f0dbf7..15ed3a6997 100644 --- a/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp +++ b/sdk/storage/azure-storage-files-shares/test/ut/share_directory_client_test.cpp @@ -1190,6 +1190,18 @@ namespace Azure { namespace Storage { namespace Test { EXPECT_EQ(allAccessRights, directoryHandles[0].AccessRights.Value()); } + TEST_F(FileShareDirectoryClientTest, ListHandlesWithClientName_PLAYBACKONLY_) + { + auto shareClient = Files::Shares::ShareClient::CreateFromConnectionString( + StandardStorageConnectionString(), + "testing", + InitStorageClientOptions()); + auto directoryClient = shareClient.GetRootDirectoryClient().GetSubdirectoryClient("dir1"); + auto directoryHandles = directoryClient.ListHandles().DirectoryHandles; + EXPECT_EQ(directoryHandles.size(), 1L); + EXPECT_FALSE(directoryHandles[0].ClientName.empty()); + } + TEST_F(FileShareDirectoryClientTest, WithShareSnapshot) { const std::string timestamp1 = "2001-01-01T01:01:01.1111000Z"; diff --git a/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp b/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp index 08e28869b4..681733567b 100644 --- a/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp +++ b/sdk/storage/azure-storage-files-shares/test/ut/share_file_client_test.cpp @@ -1741,6 +1741,20 @@ namespace Azure { namespace Storage { namespace Test { EXPECT_EQ(allAccessRights, fileHandles[0].AccessRights.Value()); } + TEST_F(FileShareFileClientTest, ListHandlesWithClientName_PLAYBACKONLY_) + { + auto shareClient = Files::Shares::ShareClient::CreateFromConnectionString( + StandardStorageConnectionString(), + "testing", + InitStorageClientOptions()); + auto fileClient + = shareClient.GetRootDirectoryClient().GetSubdirectoryClient("dir1").GetFileClient( + "test.txt"); + auto fileHandles = fileClient.ListHandles().FileHandles; + EXPECT_EQ(fileHandles.size(), 1L); + EXPECT_FALSE(fileHandles[0].ClientName.empty()); + } + TEST_F(FileShareFileClientTest, WithShareSnapshot) { const std::string timestamp1 = "2001-01-01T01:01:01.1111000Z";