diff --git a/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs b/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs index 6b3fd3e7dded..9dfdeb9172a2 100644 --- a/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs @@ -579,6 +579,7 @@ internal BlobItem() { } public bool? IsCurrentVersion { get { throw null; } } public System.Collections.Generic.IDictionary Metadata { get { throw null; } } public string Name { get { throw null; } } + public System.Collections.Generic.IDictionary> ObjectReplicationSourceProperties { get { throw null; } } public Azure.Storage.Blobs.Models.BlobItemProperties Properties { get { throw null; } } public string Snapshot { get { throw null; } } public System.Collections.Generic.IDictionary Tags { get { throw null; } } diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobExtensions.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobExtensions.cs index 7dd697b12f4e..8b651734353e 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobExtensions.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobExtensions.cs @@ -60,7 +60,10 @@ internal static BlobItem ToBlobItem(this BlobItemInternal blobItemInternal) Metadata = blobItemInternal.Metadata?.Count > 0 ? blobItemInternal.Metadata : null, - Tags = blobItemInternal.BlobTags.ToTagDictionary() + Tags = blobItemInternal.BlobTags.ToTagDictionary(), + ObjectReplicationSourceProperties = blobItemInternal.ObjectReplicationMetadata?.Count > 0 + ? ParseObjectReplicationMetadata(blobItemInternal.ObjectReplicationMetadata) + : null }; } @@ -107,7 +110,9 @@ internal static BlobProperties ToBlobProperties(this BlobPropertiesInternal prop CreatedOn = properties.CreatedOn, Metadata = properties.Metadata, ObjectReplicationDestinationPolicy = properties.ObjectReplicationPolicyId, - ObjectReplicationSourceProperties = BlobExtensions.ParseObjectReplicationIds(properties.ObjectReplicationRules), + ObjectReplicationSourceProperties = properties.ObjectReplicationRules?.Count > 0 + ? BlobExtensions.ParseObjectReplicationIds(properties.ObjectReplicationRules) + : null, BlobType = properties.BlobType, CopyCompletedOn = properties.CopyCompletedOn, CopyStatusDescription = properties.CopyStatusDescription, @@ -162,19 +167,13 @@ internal static BlobProperties ToBlobProperties(this BlobPropertiesInternal prop /// If the blob has object replication policy applied and is the destination blob, /// this method will return default as the policy id should be set in ObjectReplicationDestinationPolicy /// (e.g. ,). - /// Otherwise null will be returned. + /// Otherwise null will be returned. /// internal static IDictionary> ParseObjectReplicationIds(this IDictionary OrIds) { - if (OrIds == null) - { - return null; - } // If the dictionary is empty or it contains a key with policy id, we are not required to do any parsing since // the policy id should already be stored in the ObjectReplicationDestinationPolicy. - if (OrIds.Count == 0 || - (OrIds.Count > 0 && - (OrIds.First().Key == "policy-id"))) + if (OrIds.First().Key == "policy-id") { return default; } @@ -195,5 +194,43 @@ internal static IDictionary> ParseObjectRepl } return OrProperties; } + + /// + /// Internal. Parses Object Replication Policy ID from Rule ID and sets the Policy ID for source blobs. + /// + /// + /// Unparsed Object Replication headers. + /// For source blobs, the dictionary will contain keys that are prefixed with "or-" and followed by the + /// policy id and rule id separated by a underscore (e.g. or-policyId_ruleId). + /// The value of this metadata key will be the replication status (e.g. Complete, Failed). + /// + /// + /// If the blob has object replication policy(s) applied and is the source blob, this method will return a + /// dictionary of policy Ids, with a dictionary of rules and replication status for each policy + /// (As each policy id, could have multiple rule ids). + /// + internal static IDictionary> ParseObjectReplicationMetadata(this IDictionary OrMetadata) + { + IDictionary> OrProperties = new Dictionary>(); + foreach (KeyValuePair status in OrMetadata) + { + string[] ParsedIds = status.Key.Split('_'); + if (ParsedIds[0].StartsWith("or-", System.StringComparison.InvariantCulture)) + { + ParsedIds[0] = ParsedIds[0].Substring("or-".Length); + } + if (OrProperties.ContainsKey(ParsedIds[0])) + { + OrProperties[ParsedIds[0]].Add(ParsedIds[1], status.Value); + } + else + { + IDictionary NewRuleStatus = new Dictionary(); + NewRuleStatus.Add(ParsedIds[1], status.Value); + OrProperties.Add(ParsedIds[0], NewRuleStatus); + } + } + return OrProperties; + } } } diff --git a/sdk/storage/Azure.Storage.Blobs/src/Generated/BlobRestClient.cs b/sdk/storage/Azure.Storage.Blobs/src/Generated/BlobRestClient.cs index 90961bf1dcef..011ffca479df 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/Generated/BlobRestClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/Generated/BlobRestClient.cs @@ -17936,7 +17936,7 @@ internal static Azure.Storage.Blobs.Models.BlobItemInternal FromXml(System.Xml.L _value.BlobTags = Azure.Storage.Blobs.Models.BlobTags.FromXml(_child); } _value.ObjectReplicationMetadata = new System.Collections.Generic.Dictionary(System.StringComparer.OrdinalIgnoreCase); - _child = element.Element(System.Xml.Linq.XName.Get("ObjectReplicationMetadata", "")); + _child = element.Element(System.Xml.Linq.XName.Get("OrMetadata", "")); if (_child != null) { foreach (System.Xml.Linq.XElement _pair in _child.Elements()) diff --git a/sdk/storage/Azure.Storage.Blobs/src/Models/BlobInfo.cs b/sdk/storage/Azure.Storage.Blobs/src/Models/BlobInfo.cs index fdbfb7ea559d..28783f594170 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/Models/BlobInfo.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/Models/BlobInfo.cs @@ -80,7 +80,9 @@ internal BlobDownloadInfo(FlattenedDownloadProperties flattened) _flattened = flattened; Details = new BlobDownloadDetails() { _flattened = flattened, - ObjectReplicationSourceProperties = BlobExtensions.ParseObjectReplicationIds(flattened.ObjectReplicationRules) + ObjectReplicationSourceProperties = flattened.ObjectReplicationRules?.Count > 0 + ? BlobExtensions.ParseObjectReplicationIds(flattened.ObjectReplicationRules) + : null }; } diff --git a/sdk/storage/Azure.Storage.Blobs/src/Models/BlobItem.cs b/sdk/storage/Azure.Storage.Blobs/src/Models/BlobItem.cs index 31dbacae02ae..365d5e3904d0 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/Models/BlobItem.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/Models/BlobItem.cs @@ -53,5 +53,10 @@ internal BlobItem() { } /// Tags. /// public IDictionary Tags { get; internal set; } + + /// + /// Holds the Object Replication Metadata as Dictionary ( policyId, Dictionary ( ruleId, replicationStatus ) ). + /// + public IDictionary > ObjectReplicationSourceProperties { get; internal set; } } } diff --git a/sdk/storage/Azure.Storage.Blobs/src/Models/BlobProperties.cs b/sdk/storage/Azure.Storage.Blobs/src/Models/BlobProperties.cs index e1dfce24c4f3..511330191ab5 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/Models/BlobProperties.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/Models/BlobProperties.cs @@ -35,7 +35,8 @@ public partial class BlobProperties public string ObjectReplicationDestinationPolicy { get; internal set; } /// - /// Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob. + /// Holds the Object Replication Properties of the source blob as + /// Dictionary ( policyId, Dictionary ( ruleId, replicationStatus ) ). /// public IDictionary> ObjectReplicationSourceProperties { get; internal set; } diff --git a/sdk/storage/Azure.Storage.Blobs/swagger/readme.md b/sdk/storage/Azure.Storage.Blobs/swagger/readme.md index 467dd10b716e..875c8580cc62 100644 --- a/sdk/storage/Azure.Storage.Blobs/swagger/readme.md +++ b/sdk/storage/Azure.Storage.Blobs/swagger/readme.md @@ -1547,4 +1547,13 @@ directive: delete $.enum ``` +### Make BlobItemInternal ObjectReplicationMetadata XML value to OrMetadata +``` yaml +directive: +- from: swagger-document + where: $.definitions.BlobItemInternal + transform: > + $.properties.ObjectReplicationMetadata.xml = { "name": "OrMetadata" }; +``` + ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-net%2Fsdk%2Fstorage%2FAzure.Storage.Blobs%2Fswagger%2Freadme.png) diff --git a/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs index 1f4ca31dc011..5066ac10b5ed 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs @@ -1766,6 +1766,27 @@ public async Task ListBlobsFlatSegmentAsync_VersionId() Assert.AreEqual(setMetadataResponse.Value.VersionId, blobs[1].VersionId); } + // TODO: Recorded Only + [Test] + [ServiceVersion(Min = BlobClientOptions.ServiceVersion.V2019_12_12)] + public async Task ListBlobsFlatSegmentAsync_ObjectReplication() + { + // TODO: The tests will temporarily use designated account, containers and blobs to check the + // existence of OR Metadata + BlobServiceClient sourceServiceClient = GetServiceClient_SharedKey(); + + // This is a recorded ONLY test with a special container we previously setup, as we can't auto setup policies yet + BlobContainerClient sourceContainer = InstrumentClient(sourceServiceClient.GetBlobContainerClient("test1")); + + // Act + IList blobs = await sourceContainer.GetBlobsAsync().ToListAsync(); + + // Assert + // Since this is a record ONLY test. We expect all the blobs in this source container/account + // to have OrMetadata + Assert.IsNotNull(blobs.First().ObjectReplicationSourceProperties); + } + [Test] public async Task ListBlobsHierarchySegmentAsync() { @@ -2004,6 +2025,27 @@ await TestHelper.AssertExpectedExceptionAsync( e => Assert.AreEqual("ContainerNotFound", e.ErrorCode)); } + // TODO: Recorded Only + [Test] + [ServiceVersion(Min = BlobClientOptions.ServiceVersion.V2019_12_12)] + public async Task ListBlobsHierarchySegmentAsync_ObjectReplication() + { + // TODO: The tests will temporarily use designated account, containers and blobs to check the + // existence of OR Metadata + BlobServiceClient sourceServiceClient = GetServiceClient_SharedKey(); + + // This is a recorded ONLY test with a special container we previously setup, as we can't auto setup policies yet + BlobContainerClient sourceContainer = InstrumentClient(sourceServiceClient.GetBlobContainerClient("test1")); + + // Act + BlobHierarchyItem item = await sourceContainer.GetBlobsByHierarchyAsync().FirstAsync(); + + // Assert + // Since this is a record ONLY test. We expect all the blobs in this source container/account + // to have OrMetadata + Assert.IsNotNull(item.Blob.ObjectReplicationSourceProperties); + } + [Test] public async Task UploadBlobAsync() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsFlatSegmentAsync_ObjectReplication.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsFlatSegmentAsync_ObjectReplication.json new file mode 100644 index 000000000000..34cfc6edec51 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsFlatSegmentAsync_ObjectReplication.json @@ -0,0 +1,38 @@ +{ + "Entries": [ + { + "RequestUri": "https://ortestsaccountcbn1.blob.core.windows.net/test1?restype=container\u0026comp=list", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.5.0-dev.20200608.1", + "(.NET Core 4.6.28801.04; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f8bb8347-98c7-f140-6350-9f870413e816", + "x-ms-date": "Mon, 08 Jun 2020 17:29:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Mon, 08 Jun 2020 17:29:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "f8bb8347-98c7-f140-6350-9f870413e816", + "x-ms-request-id": "c2fc1256-101e-0057-6eba-3de393000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CEnumerationResults ServiceEndpoint=\u0022https://ortestsaccountcbn1.blob.core.windows.net/\u0022 ContainerName=\u0022test1\u0022\u003E\u003CBlobs\u003E\u003CBlob\u003E\u003CName\u003Ebla.txt\u003C/Name\u003E\u003CVersionId\u003E2020-05-18T09:53:04.5502688Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FB114288CFC9\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:21:09.4878662Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC324C3049C6\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata /\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty2.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:36:03.0870309Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC3460D0B325\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesors57d93407b\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:14:42.3905881Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E6390264E659\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesorsa30009027\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:12:08.2403198Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E638A6834867\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Enetgetpropertiesors2blobapitestgetpropertiesors\u003C/Name\u003E\u003CVersionId\u003E2020-04-23T22:04:56.9882747Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E7D25C0F807B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Epythonorstest\u003C/Name\u003E\u003CVersionId\u003E2020-05-19T08:19:55.0147367Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FBCD69534727\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Etest-blob-19f4217a-3814-436b-a70d-3be4b0c604e2\u003C/Name\u003E\u003CVersionId\u003E2020-04-15T09:03:31.2849799Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E11BDEB2C86B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EsVLUBL9mQUUJgLz3ayOPnw==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003C/Blobs\u003E\u003CNextMarker /\u003E\u003C/EnumerationResults\u003E" + } + ], + "Variables": { + "RandomSeed": "1383300635", + "Storage_TestConfigDefault": "ProductionTenant\nortestsaccountcbn1\nU2FuaXRpemVk\nhttps://ortestsaccountcbn1.blob.core.windows.net\nhttps://ortestsaccountcbn1.file.core.windows.net\nhttps://ortestsaccountcbn1.queue.core.windows.net\nhttps://ortestsaccountcbn1.table.core.windows.net\n\n\n\n\nhttp://ortestsaccountcbn1-secondary.blob.core.windows.net\nhttp://ortestsaccountcbn1-secondary.file.core.windows.net\nhttp://ortestsaccountcbn1-secondary.queue.core.windows.net\nhttp://ortestsaccountcbn1-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://ortestsaccountcbn1.blob.core.windows.net/;QueueEndpoint=https://ortestsaccountcbn1.queue.core.windows.net/;FileEndpoint=https://ortestsaccountcbn1.file.core.windows.net/;BlobSecondaryEndpoint=http://ortestsaccountcbn1-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://ortestsaccountcbn1-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://ortestsaccountcbn1-secondary.file.core.windows.net/;AccountName=ortestsaccountcbn1;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsFlatSegmentAsync_ObjectReplicationAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsFlatSegmentAsync_ObjectReplicationAsync.json new file mode 100644 index 000000000000..989749adf8ad --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsFlatSegmentAsync_ObjectReplicationAsync.json @@ -0,0 +1,38 @@ +{ + "Entries": [ + { + "RequestUri": "https://ortestsaccountcbn1.blob.core.windows.net/test1?restype=container\u0026comp=list", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.5.0-dev.20200608.1", + "(.NET Core 4.6.28801.04; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2420bb76-ebc6-6605-d86e-964b5b6a07f9", + "x-ms-date": "Mon, 08 Jun 2020 17:29:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Mon, 08 Jun 2020 17:29:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "2420bb76-ebc6-6605-d86e-964b5b6a07f9", + "x-ms-request-id": "7b9d9f88-f01e-002d-33ba-3dfed3000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CEnumerationResults ServiceEndpoint=\u0022https://ortestsaccountcbn1.blob.core.windows.net/\u0022 ContainerName=\u0022test1\u0022\u003E\u003CBlobs\u003E\u003CBlob\u003E\u003CName\u003Ebla.txt\u003C/Name\u003E\u003CVersionId\u003E2020-05-18T09:53:04.5502688Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FB114288CFC9\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:21:09.4878662Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC324C3049C6\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata /\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty2.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:36:03.0870309Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC3460D0B325\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesors57d93407b\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:14:42.3905881Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E6390264E659\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesorsa30009027\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:12:08.2403198Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E638A6834867\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Enetgetpropertiesors2blobapitestgetpropertiesors\u003C/Name\u003E\u003CVersionId\u003E2020-04-23T22:04:56.9882747Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E7D25C0F807B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Epythonorstest\u003C/Name\u003E\u003CVersionId\u003E2020-05-19T08:19:55.0147367Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FBCD69534727\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Etest-blob-19f4217a-3814-436b-a70d-3be4b0c604e2\u003C/Name\u003E\u003CVersionId\u003E2020-04-15T09:03:31.2849799Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E11BDEB2C86B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EsVLUBL9mQUUJgLz3ayOPnw==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003C/Blobs\u003E\u003CNextMarker /\u003E\u003C/EnumerationResults\u003E" + } + ], + "Variables": { + "RandomSeed": "1037828401", + "Storage_TestConfigDefault": "ProductionTenant\nortestsaccountcbn1\nU2FuaXRpemVk\nhttps://ortestsaccountcbn1.blob.core.windows.net\nhttps://ortestsaccountcbn1.file.core.windows.net\nhttps://ortestsaccountcbn1.queue.core.windows.net\nhttps://ortestsaccountcbn1.table.core.windows.net\n\n\n\n\nhttp://ortestsaccountcbn1-secondary.blob.core.windows.net\nhttp://ortestsaccountcbn1-secondary.file.core.windows.net\nhttp://ortestsaccountcbn1-secondary.queue.core.windows.net\nhttp://ortestsaccountcbn1-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://ortestsaccountcbn1.blob.core.windows.net/;QueueEndpoint=https://ortestsaccountcbn1.queue.core.windows.net/;FileEndpoint=https://ortestsaccountcbn1.file.core.windows.net/;BlobSecondaryEndpoint=http://ortestsaccountcbn1-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://ortestsaccountcbn1-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://ortestsaccountcbn1-secondary.file.core.windows.net/;AccountName=ortestsaccountcbn1;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsHierarchySegmentAsync_ObjectReplication.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsHierarchySegmentAsync_ObjectReplication.json new file mode 100644 index 000000000000..fc15b22764f3 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsHierarchySegmentAsync_ObjectReplication.json @@ -0,0 +1,38 @@ +{ + "Entries": [ + { + "RequestUri": "https://ortestsaccountcbn1.blob.core.windows.net/test1?restype=container\u0026comp=list", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.5.0-dev.20200608.1", + "(.NET Core 4.6.28801.04; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "1e79c685-94e2-881d-f3f4-ccaaecb84af8", + "x-ms-date": "Mon, 08 Jun 2020 18:27:32 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Mon, 08 Jun 2020 18:27:32 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "1e79c685-94e2-881d-f3f4-ccaaecb84af8", + "x-ms-request-id": "1ad454ba-f01e-0060-63c2-3d313f000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CEnumerationResults ServiceEndpoint=\u0022https://ortestsaccountcbn1.blob.core.windows.net/\u0022 ContainerName=\u0022test1\u0022\u003E\u003CBlobs\u003E\u003CBlob\u003E\u003CName\u003Ebla.txt\u003C/Name\u003E\u003CVersionId\u003E2020-05-18T09:53:04.5502688Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FB114288CFC9\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:21:09.4878662Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC324C3049C6\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata /\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty2.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:36:03.0870309Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC3460D0B325\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesors57d93407b\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:14:42.3905881Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E6390264E659\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesorsa30009027\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:12:08.2403198Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E638A6834867\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Enetgetpropertiesors2blobapitestgetpropertiesors\u003C/Name\u003E\u003CVersionId\u003E2020-04-23T22:04:56.9882747Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E7D25C0F807B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Epythonorstest\u003C/Name\u003E\u003CVersionId\u003E2020-05-19T08:19:55.0147367Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FBCD69534727\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Etest-blob-19f4217a-3814-436b-a70d-3be4b0c604e2\u003C/Name\u003E\u003CVersionId\u003E2020-04-15T09:03:31.2849799Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E11BDEB2C86B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EsVLUBL9mQUUJgLz3ayOPnw==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003C/Blobs\u003E\u003CNextMarker /\u003E\u003C/EnumerationResults\u003E" + } + ], + "Variables": { + "RandomSeed": "1857476716", + "Storage_TestConfigDefault": "ProductionTenant\nortestsaccountcbn1\nU2FuaXRpemVk\nhttps://ortestsaccountcbn1.blob.core.windows.net\nhttps://ortestsaccountcbn1.file.core.windows.net\nhttps://ortestsaccountcbn1.queue.core.windows.net\nhttps://ortestsaccountcbn1.table.core.windows.net\n\n\n\n\nhttp://ortestsaccountcbn1-secondary.blob.core.windows.net\nhttp://ortestsaccountcbn1-secondary.file.core.windows.net\nhttp://ortestsaccountcbn1-secondary.queue.core.windows.net\nhttp://ortestsaccountcbn1-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://ortestsaccountcbn1.blob.core.windows.net/;QueueEndpoint=https://ortestsaccountcbn1.queue.core.windows.net/;FileEndpoint=https://ortestsaccountcbn1.file.core.windows.net/;BlobSecondaryEndpoint=http://ortestsaccountcbn1-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://ortestsaccountcbn1-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://ortestsaccountcbn1-secondary.file.core.windows.net/;AccountName=ortestsaccountcbn1;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsHierarchySegmentAsync_ObjectReplicationAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsHierarchySegmentAsync_ObjectReplicationAsync.json new file mode 100644 index 000000000000..4ee87390ad2b --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/ListBlobsHierarchySegmentAsync_ObjectReplicationAsync.json @@ -0,0 +1,38 @@ +{ + "Entries": [ + { + "RequestUri": "https://ortestsaccountcbn1.blob.core.windows.net/test1?restype=container\u0026comp=list", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.5.0-dev.20200608.1", + "(.NET Core 4.6.28801.04; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "276488e2-43ee-a17f-5311-4aff15827570", + "x-ms-date": "Mon, 08 Jun 2020 18:27:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Mon, 08 Jun 2020 18:27:25 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "276488e2-43ee-a17f-5311-4aff15827570", + "x-ms-request-id": "43a20fae-101e-008c-6bc2-3d25ae000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CEnumerationResults ServiceEndpoint=\u0022https://ortestsaccountcbn1.blob.core.windows.net/\u0022 ContainerName=\u0022test1\u0022\u003E\u003CBlobs\u003E\u003CBlob\u003E\u003CName\u003Ebla.txt\u003C/Name\u003E\u003CVersionId\u003E2020-05-18T09:53:04.5502688Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EMon, 18 May 2020 09:53:04 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FB114288CFC9\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:21:09.4878662Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:21:09 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC324C3049C6\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata /\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Eempty2.txt\u003C/Name\u003E\u003CVersionId\u003E2020-03-19T18:36:03.0870309Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 19 Mar 2020 18:36:03 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7CC3460D0B325\u003C/Etag\u003E\u003CContent-Length\u003E0\u003C/Content-Length\u003E\u003CContent-Type\u003Etext/plain\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003E1B2M2Y8AsgTpgAmY7PhCfg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesors57d93407b\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:14:42.3905881Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:14:42 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E6390264E659\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Ejavablobgetpropertiesors2blobapitestgetpropertiesorsa30009027\u003C/Name\u003E\u003CVersionId\u003E2020-04-21T21:12:08.2403198Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 21 Apr 2020 21:12:08 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E638A6834867\u003C/Etag\u003E\u003CContent-Length\u003E7\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003Ewh\u002BWm18D0z1D4E\u002BPE252gg==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Enetgetpropertiesors2blobapitestgetpropertiesors\u003C/Name\u003E\u003CVersionId\u003E2020-04-23T22:04:56.9882747Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EThu, 23 Apr 2020 22:04:56 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E7D25C0F807B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Epythonorstest\u003C/Name\u003E\u003CVersionId\u003E2020-05-19T08:19:55.0147367Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003ETue, 19 May 2020 08:19:55 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7FBCD69534727\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EeyObQAWrMwC74Eh3CuRM2g==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003CBlob\u003E\u003CName\u003Etest-blob-19f4217a-3814-436b-a70d-3be4b0c604e2\u003C/Name\u003E\u003CVersionId\u003E2020-04-15T09:03:31.2849799Z\u003C/VersionId\u003E\u003CIsCurrentVersion\u003Etrue\u003C/IsCurrentVersion\u003E\u003CProperties\u003E\u003CCreation-Time\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Creation-Time\u003E\u003CLast-Modified\u003EWed, 15 Apr 2020 09:03:31 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E0x8D7E11BDEB2C86B\u003C/Etag\u003E\u003CContent-Length\u003E1024\u003C/Content-Length\u003E\u003CContent-Type\u003Eapplication/octet-stream\u003C/Content-Type\u003E\u003CContent-Encoding /\u003E\u003CContent-Language /\u003E\u003CContent-CRC64 /\u003E\u003CContent-MD5\u003EsVLUBL9mQUUJgLz3ayOPnw==\u003C/Content-MD5\u003E\u003CCache-Control /\u003E\u003CContent-Disposition /\u003E\u003CBlobType\u003EBlockBlob\u003C/BlobType\u003E\u003CAccessTier\u003EHot\u003C/AccessTier\u003E\u003CAccessTierInferred\u003Etrue\u003C/AccessTierInferred\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CServerEncrypted\u003Etrue\u003C/ServerEncrypted\u003E\u003C/Properties\u003E\u003COrMetadata\u003E\u003Cor-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003Ecomplete\u003C/or-fd2da1b9-56f5-45ff-9eb6-310e6dfc2c80_105f9aad-f39b-4064-8e47-ccd7937295ca\u003E\u003C/OrMetadata\u003E\u003C/Blob\u003E\u003C/Blobs\u003E\u003CNextMarker /\u003E\u003C/EnumerationResults\u003E" + } + ], + "Variables": { + "RandomSeed": "885293006", + "Storage_TestConfigDefault": "ProductionTenant\nortestsaccountcbn1\nU2FuaXRpemVk\nhttps://ortestsaccountcbn1.blob.core.windows.net\nhttps://ortestsaccountcbn1.file.core.windows.net\nhttps://ortestsaccountcbn1.queue.core.windows.net\nhttps://ortestsaccountcbn1.table.core.windows.net\n\n\n\n\nhttp://ortestsaccountcbn1-secondary.blob.core.windows.net\nhttp://ortestsaccountcbn1-secondary.file.core.windows.net\nhttp://ortestsaccountcbn1-secondary.queue.core.windows.net\nhttp://ortestsaccountcbn1-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://ortestsaccountcbn1.blob.core.windows.net/;QueueEndpoint=https://ortestsaccountcbn1.queue.core.windows.net/;FileEndpoint=https://ortestsaccountcbn1.file.core.windows.net/;BlobSecondaryEndpoint=http://ortestsaccountcbn1-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://ortestsaccountcbn1-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://ortestsaccountcbn1-secondary.file.core.windows.net/;AccountName=ortestsaccountcbn1;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/Generated/FileRestClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/Generated/FileRestClient.cs index 7c77b6d89012..13044fbfddc6 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/Generated/FileRestClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/Generated/FileRestClient.cs @@ -3630,7 +3630,7 @@ internal static Azure.Core.HttpMessage ListHandlesAsync_CreateMessage( /// The ClientDiagnostics instance used for operation reporting. /// The pipeline used for sending requests. /// The URL of the service account, share, directory or file that is the target of the desired operation. - /// Specifies handle ID opened on the file or directory to be closed. Asterix (‘*’) is a wildcard that specifies all handles. + /// Specifies handle ID opened on the file or directory to be closed. Asterisk (‘*’) is a wildcard that specifies all handles. /// Specifies the version of the operation to use for this request. /// The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for File Service Operations. /// A string value that identifies the portion of the list to be returned with the next list operation. The operation returns a marker value within the response body if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items. The marker value is opaque to the client. @@ -3701,7 +3701,7 @@ internal static Azure.Core.HttpMessage ListHandlesAsync_CreateMessage( /// /// The pipeline used for sending requests. /// The URL of the service account, share, directory or file that is the target of the desired operation. - /// Specifies handle ID opened on the file or directory to be closed. Asterix (‘*’) is a wildcard that specifies all handles. + /// Specifies handle ID opened on the file or directory to be closed. Asterisk (‘*’) is a wildcard that specifies all handles. /// Specifies the version of the operation to use for this request. /// The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for File Service Operations. /// A string value that identifies the portion of the list to be returned with the next list operation. The operation returns a marker value within the response body if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items. The marker value is opaque to the client. @@ -7168,7 +7168,7 @@ internal static Azure.Core.HttpMessage ListHandlesAsync_CreateMessage( /// The ClientDiagnostics instance used for operation reporting. /// The pipeline used for sending requests. /// The URL of the service account, share, directory or file that is the target of the desired operation. - /// Specifies handle ID opened on the file or directory to be closed. Asterix (‘*’) is a wildcard that specifies all handles. + /// Specifies handle ID opened on the file or directory to be closed. Asterisk (‘*’) is a wildcard that specifies all handles. /// Specifies the version of the operation to use for this request. /// The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for File Service Operations. /// A string value that identifies the portion of the list to be returned with the next list operation. The operation returns a marker value within the response body if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items. The marker value is opaque to the client. @@ -7236,7 +7236,7 @@ internal static Azure.Core.HttpMessage ListHandlesAsync_CreateMessage( /// /// The pipeline used for sending requests. /// The URL of the service account, share, directory or file that is the target of the desired operation. - /// Specifies handle ID opened on the file or directory to be closed. Asterix (‘*’) is a wildcard that specifies all handles. + /// Specifies handle ID opened on the file or directory to be closed. Asterisk (‘*’) is a wildcard that specifies all handles. /// Specifies the version of the operation to use for this request. /// The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for File Service Operations. /// A string value that identifies the portion of the list to be returned with the next list operation. The operation returns a marker value within the response body if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items. The marker value is opaque to the client.