From abcd8f77867115c09397051dfc1a6abdb30fb303 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Fri, 26 Jun 2020 10:00:55 -0700 Subject: [PATCH 01/11] Update the logic for ETags and preconditions --- .../Azure.Iot.Hub.Service.netstandard2.0.cs | 7 +- .../ModuleIdentityLifecycleSamples.cs | 9 +- .../src/BulkIfMatchPrecondition.cs | 2 +- .../src/DevicesClient.cs | 20 +- .../src/IfMatchPrecondition.cs | 6 - .../src/IfMatchPreconditionExtensions.cs | 4 +- .../src/ModulesClient.cs | 8 +- .../tests/DevicesClientTests.cs | 56 +++- ...cesClient_BulkCreation_DeviceWithTwin.json | 22 +- ...ient_BulkCreation_DeviceWithTwinAsync.json | 22 +- .../DevicesClient_BulkUpdate.json | 90 +++--- .../DevicesClient_BulkUpdateAsync.json | 98 +++--- .../DevicesClient_DeviceTwinLifecycle.json | 55 ++-- ...evicesClient_DeviceTwinLifecycleAsync.json | 55 ++-- .../DevicesClient_IdentityLifecycle.json | 67 ++-- .../DevicesClient_IdentityLifecycleAsync.json | 73 ++--- .../DevicesClient_Query_GetTwins.json | 32 +- .../DevicesClient_Query_GetTwinsAsync.json | 53 +--- ...sClient_UpdateDevice_EtagDoesNotMatch.json | 287 ++++++++++++++++++ ...nt_UpdateDevice_EtagDoesNotMatchAsync.json | 287 ++++++++++++++++++ 20 files changed, 925 insertions(+), 328 deletions(-) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatch.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatchAsync.json diff --git a/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs b/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs index 8ebcc1cbdca28..9aa21ceef5da3 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs @@ -2,7 +2,7 @@ namespace Azure.Iot.Hub.Service { public enum BulkIfMatchPrecondition { - Unconditional = 0, + UnconditionalfMatch = 0, IfMatch = 1, } public partial class CloudToDeviceMessagesClient @@ -43,9 +43,8 @@ public FilesClient() { } } public enum IfMatchPrecondition { - Unconditional = 0, - UnconditionalIfMatch = 1, - IfMatch = 2, + UnconditionalIfMatch = 0, + IfMatch = 1, } public partial class IoTHubServiceClient { diff --git a/sdk/iot/Azure.Iot.Hub.Service/samples/IotHubClientSamples/ModuleIdentityLifecycleSamples.cs b/sdk/iot/Azure.Iot.Hub.Service/samples/IotHubClientSamples/ModuleIdentityLifecycleSamples.cs index c8744ee3cd905..dd299decd53cf 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/samples/IotHubClientSamples/ModuleIdentityLifecycleSamples.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/samples/IotHubClientSamples/ModuleIdentityLifecycleSamples.cs @@ -193,7 +193,7 @@ public async Task UpdateModuleIdentityAsync(string deviceId, str Console.WriteLine($"Updating module identity with Id: '{moduleIdentity.ModuleId}'. Setting 'ManagedBy' property to: '{Environment.UserName}'"); moduleIdentity.ManagedBy = Environment.UserName; - Response response = await IoTHubServiceClient.Modules.CreateOrUpdateIdentityAsync(moduleIdentity, IfMatchPrecondition.UnconditionalIfMatch); + Response response = await IoTHubServiceClient.Modules.CreateOrUpdateIdentityAsync(moduleIdentity); ModuleIdentity updatedModule = response.Value; @@ -256,7 +256,7 @@ public async Task UpdateModuleTwinAsync(string deviceId, string module moduleTwin.Properties.Desired.Add(new KeyValuePair(userPropName, Environment.UserName)); - Response response = await IoTHubServiceClient.Modules.UpdateTwinAsync(moduleTwin, IfMatchPrecondition.UnconditionalIfMatch); + Response response = await IoTHubServiceClient.Modules.UpdateTwinAsync(moduleTwin); TwinData updatedTwin = response.Value; @@ -294,7 +294,7 @@ public async Task DeleteModuleIdentityAsync(string deviceId, string moduleId) Console.WriteLine($"Deleting module identity: DeviceId: '{moduleIdentity.DeviceId}', ModuleId: '{moduleIdentity.ModuleId}', ETag: '{moduleIdentity.Etag}'"); // We use UnconditionalIfMatch to force delete the Module Identity (disregard the IfMatch ETag). - Response response = await IoTHubServiceClient.Modules.DeleteIdentityAsync(moduleIdentity, IfMatchPrecondition.UnconditionalIfMatch); + Response response = await IoTHubServiceClient.Modules.DeleteIdentityAsync(moduleIdentity); SampleLogger.PrintSuccess($"Successfully deleted module identity: DeviceId: '{deviceId}', ModuleId: '{moduleId}'"); } @@ -320,8 +320,7 @@ public async Task DeleteDeviceIdentityAsync(string deviceId) Console.WriteLine($"Deleting device identity with Id: '{deviceIdentity.DeviceId}'"); - // We use UnconditionalIfMatch to force delete the Device Identity (disregard the IfMatch ETag). - Response response = await IoTHubServiceClient.Devices.DeleteIdentityAsync(deviceIdentity, IfMatchPrecondition.UnconditionalIfMatch); + Response response = await IoTHubServiceClient.Devices.DeleteIdentityAsync(deviceIdentity); SampleLogger.PrintSuccess($"Successfully deleted device identity with Id: '{deviceIdentity.DeviceId}'"); } diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs b/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs index 822764bc1f22b..9804df82c7a83 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs @@ -11,7 +11,7 @@ public enum BulkIfMatchPrecondition /// /// Perform this operation regardless of if the provided resource's ETag matches the service's ETag. /// - Unconditional, + UnconditionalfMatch, /// /// Perform this operation only if the resource exists in the service, and the provided resource's ETag diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 0e2b8fd1d3d20..27292beb5d335 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -44,7 +44,7 @@ internal DevicesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// Create or update a device identity. /// /// the device identity to create. - /// The condition on which to perform this operation. To create a device identity, this value must be equal to . + /// The condition on which to perform this operation. To create a device identity, this value must be equal to . /// The cancellation token. /// The created device identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -61,7 +61,7 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// Create or update a device identity. /// /// the device identity to create. - /// The condition on which to perform this operation. To create a device identity, this value must be equal to . + /// The condition on which to perform this operation. To create a device identity, this value must be equal to . /// The cancellation token. /// The created device identity and the http response . public virtual Response CreateOrUpdateIdentity( @@ -99,7 +99,7 @@ public virtual Response GetIdentity(string deviceId, Cancellatio /// /// Delete a single device identity. /// - /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to or equal to . + /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to or equal to . /// The condition on which to delete the device. /// The cancellation token. /// The http response . @@ -116,7 +116,7 @@ public virtual Task DeleteIdentityAsync( /// /// Delete a single device identity. /// - /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to or equal to . + /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to or equal to . /// The condition on which to delete the device. /// The cancellation token. /// The http response . @@ -265,7 +265,7 @@ public virtual Task> UpdateIdentitiesAsy ? ExportImportDeviceStatus.Disabled : ExportImportDeviceStatus.Enabled, StatusReason = x.StatusReason, - ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag + ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag }); return _registryManagerClient.BulkDeviceCrudAsync(registryOperations, cancellationToken); @@ -296,7 +296,7 @@ public virtual Response UpdateIdentities( ? ExportImportDeviceStatus.Disabled : ExportImportDeviceStatus.Enabled, StatusReason = x.StatusReason, - ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag + ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag }); return _registryManagerClient.BulkDeviceCrud(registryOperations, cancellationToken); @@ -319,7 +319,7 @@ public virtual Task> DeleteIdentitiesAsy { Id = x.DeviceId, ETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.Unconditional + ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.Delete : ExportImportDeviceImportMode.DeleteIfMatchETag }); @@ -344,7 +344,7 @@ public virtual Response DeleteIdentities( { Id = x.DeviceId, ETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.Unconditional + ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.Delete : ExportImportDeviceImportMode.DeleteIfMatchETag }); @@ -505,7 +505,7 @@ public virtual Task> UpdateTwinsAsync( Tags = x.Tags, Properties = new PropertyContainer(x.Properties?.Desired, x.Properties?.Reported), TwinETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag + ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag }); return _registryManagerClient.BulkDeviceCrudAsync(registryOperations, cancellationToken); @@ -530,7 +530,7 @@ public virtual Response UpdateTwins( Tags = x.Tags, Properties = new PropertyContainer(x.Properties?.Desired, x.Properties?.Reported), TwinETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.Unconditional + ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag }); diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPrecondition.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPrecondition.cs index 273d41830c701..9ec1fb205ad7f 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPrecondition.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPrecondition.cs @@ -8,12 +8,6 @@ namespace Azure.Iot.Hub.Service /// public enum IfMatchPrecondition { - /// - /// Perform this operation regardless of if the provided resource matches the service's representation - /// of the object. This will cause the HTTP request to be sent with no ifMatch header. The service will never respond with a 412 error code with this setting. - /// - Unconditional, - /// /// Perform this operation as long as the provided resource exists in the service. This will cause the HTTP request to be sent with an ifMatch header with value "*". For create or update /// operations, if the resource does not exist, then the service will not execute the operation and will respond to the request with a 412 error code. For delete operations, if the resource diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs index c5ad5f063d73c..c919929f38fb1 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs @@ -20,7 +20,7 @@ internal static string GetIfMatchHeaderValue(IfMatchPrecondition precondition, s { if (precondition == IfMatchPrecondition.IfMatch) { - return ETag; + return $"\"{ETag}\""; } else if (precondition == IfMatchPrecondition.UnconditionalIfMatch) { @@ -28,7 +28,7 @@ internal static string GetIfMatchHeaderValue(IfMatchPrecondition precondition, s } else //precondition == IfMatchPrecondition.Unconditional { - return null; + return "\"null\""; } } } diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs index be8ae0aa16625..295b9cd9db26e 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs @@ -42,7 +42,7 @@ internal ModulesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// Create a module identity. /// /// The module identity to create. - /// The condition on which to perform this operation. To create a module identity, this value must be equal to . + /// The condition on which to perform this operation. To create a module identity, this value must be equal to . /// The cancellation token. /// The created module identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -59,7 +59,7 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// Create a module identity. /// /// The module identity to create. - /// The condition on which to perform this operation. To create a module identity, this value must be equal to . + /// The condition on which to perform this operation. To create a module identity, this value must be equal to . /// The cancellation token. /// The created module identity and the http response . public virtual Response CreateOrUpdateIdentity( @@ -123,7 +123,7 @@ public virtual Response> GetIdentities(string devi /// /// Delete a single module identity. /// - /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to or equal to . + /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to or equal to . /// The condition on which to delete the module identity. /// The cancellation token. /// The http response . @@ -140,7 +140,7 @@ public virtual Task DeleteIdentityAsync( /// /// Delete a single module identity. /// - /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to or equal to . + /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to or equal to . /// The condition on which to delete the module identity. /// The cancellation token. /// The http response . diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 412309200f2e8..19d47f774edb5 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -76,6 +76,58 @@ public async Task DevicesClient_IdentityLifecycle() } } + /// + /// Test the logic for ETag if-match header + /// + [Test] + public async Task DevicesClient_UpdateDevice_EtagDoesNotMatch() + { + string testDeviceId = $"UpdateWithETag{GetRandom()}"; + + DeviceIdentity device = null; + IoTHubServiceClient client = GetClient(); + + try + { + // Create a device + Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new Models.DeviceIdentity + { + DeviceId = testDeviceId + }).ConfigureAwait(false); + + // Store the device object to later update it with invalid ETag + device = createResponse.Value; + + // Update the device to get a new ETag value. + device.Status = DeviceStatus.Disabled; + Response getResponse = await client.Devices.CreateOrUpdateIdentityAsync(device).ConfigureAwait(false); + DeviceIdentity updatedDevice = getResponse.Value; + + Assert.AreNotEqual(updatedDevice.Etag, device.Etag, "ETag should have been updated."); + + // Perform another update using the old device object to verify precondition fails. + device.Status = DeviceStatus.Enabled; + try + { + Response updateResponse = await client.Devices.CreateOrUpdateIdentityAsync(device).ConfigureAwait(false); + Assert.Fail($"Update call with outdated ETag should fail with 412 (PreconditionFailed)"); + } + // We will catch the exception and verify status is 412 (PreconditionfFailed) + catch (RequestFailedException ex) + { + Assert.AreEqual(412, ex.Status, $"Expected the update to fail with http status code 412 (PreconditionFailed)"); + } + + // Perform the same update and ignore the ETag value by providing UnconditionalIfMatch precondition + await client.Devices.CreateOrUpdateIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); + } + finally + { + await Cleanup(client, device); + } + } + /// /// Test basic operations of a Device Twin. /// @@ -191,7 +243,7 @@ public async Task DevicesClient_BulkUpdate() // Make the API call to disable devices. Response updateResponse = - await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.Unconditional) + await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.UnconditionalfMatch) .ConfigureAwait(false); // TODO: (azabbasi) Once the issue with the error parsing is resolved, include the error message in the message of the assert statement. @@ -370,7 +422,7 @@ private async Task Cleanup(IoTHubServiceClient client, IEnumerable Date: Fri, 26 Jun 2020 10:15:51 -0700 Subject: [PATCH 02/11] Update IfMatchPreconditionExtensions.cs --- .../src/IfMatchPreconditionExtensions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs index c919929f38fb1..7e7d1d99a9120 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs @@ -26,9 +26,9 @@ internal static string GetIfMatchHeaderValue(IfMatchPrecondition precondition, s { return "*"; } - else //precondition == IfMatchPrecondition.Unconditional + else { - return "\"null\""; + return null; } } } From 45ac29513a7e009f944c5ddc47953b7b1e86a2e2 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 09:42:08 -0700 Subject: [PATCH 03/11] Address comments --- .../src/BulkIfMatchPrecondition.cs | 2 +- sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs | 12 ++++++------ .../tests/DevicesClientTests.cs | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs b/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs index 9804df82c7a83..822764bc1f22b 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/BulkIfMatchPrecondition.cs @@ -11,7 +11,7 @@ public enum BulkIfMatchPrecondition /// /// Perform this operation regardless of if the provided resource's ETag matches the service's ETag. /// - UnconditionalfMatch, + Unconditional, /// /// Perform this operation only if the resource exists in the service, and the provided resource's ETag diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 27292beb5d335..f04eb22f766ab 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -265,7 +265,7 @@ public virtual Task> UpdateIdentitiesAsy ? ExportImportDeviceStatus.Disabled : ExportImportDeviceStatus.Enabled, StatusReason = x.StatusReason, - ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag + ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag }); return _registryManagerClient.BulkDeviceCrudAsync(registryOperations, cancellationToken); @@ -296,7 +296,7 @@ public virtual Response UpdateIdentities( ? ExportImportDeviceStatus.Disabled : ExportImportDeviceStatus.Enabled, StatusReason = x.StatusReason, - ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag + ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Update : ExportImportDeviceImportMode.UpdateIfMatchETag }); return _registryManagerClient.BulkDeviceCrud(registryOperations, cancellationToken); @@ -319,7 +319,7 @@ public virtual Task> DeleteIdentitiesAsy { Id = x.DeviceId, ETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch + ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Delete : ExportImportDeviceImportMode.DeleteIfMatchETag }); @@ -344,7 +344,7 @@ public virtual Response DeleteIdentities( { Id = x.DeviceId, ETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch + ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.Delete : ExportImportDeviceImportMode.DeleteIfMatchETag }); @@ -505,7 +505,7 @@ public virtual Task> UpdateTwinsAsync( Tags = x.Tags, Properties = new PropertyContainer(x.Properties?.Desired, x.Properties?.Reported), TwinETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag + ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag }); return _registryManagerClient.BulkDeviceCrudAsync(registryOperations, cancellationToken); @@ -530,7 +530,7 @@ public virtual Response UpdateTwins( Tags = x.Tags, Properties = new PropertyContainer(x.Properties?.Desired, x.Properties?.Reported), TwinETag = x.Etag, - ImportMode = precondition == BulkIfMatchPrecondition.UnconditionalfMatch + ImportMode = precondition == BulkIfMatchPrecondition.Unconditional ? ExportImportDeviceImportMode.UpdateTwin : ExportImportDeviceImportMode.UpdateTwinIfMatchETag }); diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 19d47f774edb5..86770f85f1c29 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -243,7 +243,7 @@ public async Task DevicesClient_BulkUpdate() // Make the API call to disable devices. Response updateResponse = - await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.UnconditionalfMatch) + await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.Unconditional) .ConfigureAwait(false); // TODO: (azabbasi) Once the issue with the error parsing is resolved, include the error message in the message of the assert statement. @@ -422,7 +422,7 @@ private async Task Cleanup(IoTHubServiceClient client, IEnumerable Date: Mon, 29 Jun 2020 09:43:35 -0700 Subject: [PATCH 04/11] Update Azure.Iot.Hub.Service.netstandard2.0.cs --- .../api/Azure.Iot.Hub.Service.netstandard2.0.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs b/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs index 9aa21ceef5da3..f537a8d4a8ec6 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/api/Azure.Iot.Hub.Service.netstandard2.0.cs @@ -2,7 +2,7 @@ namespace Azure.Iot.Hub.Service { public enum BulkIfMatchPrecondition { - UnconditionalfMatch = 0, + Unconditional = 0, IfMatch = 1, } public partial class CloudToDeviceMessagesClient From b0de3bf87975af915d679a04d614e28f4424143b Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 09:46:44 -0700 Subject: [PATCH 05/11] Update IfMatchPreconditionExtensions.cs --- .../src/IfMatchPreconditionExtensions.cs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs index 7e7d1d99a9120..edc2128876a2b 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs @@ -18,17 +18,14 @@ internal static class IfMatchPreconditionExtensions /// The ifMatch header value. internal static string GetIfMatchHeaderValue(IfMatchPrecondition precondition, string ETag) { - if (precondition == IfMatchPrecondition.IfMatch) + switch (precondition) { - return $"\"{ETag}\""; - } - else if (precondition == IfMatchPrecondition.UnconditionalIfMatch) - { - return "*"; - } - else - { - return null; + case IfMatchPrecondition.IfMatch: + return $"\"{ETag}\""; + case IfMatchPrecondition.UnconditionalIfMatch: + return "*"; + default: + return null; } } } From 8eaba7257faf7719e1c56ff189cd19769409fda9 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 09:47:10 -0700 Subject: [PATCH 06/11] Update IfMatchPreconditionExtensions.cs --- .../src/IfMatchPreconditionExtensions.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs index edc2128876a2b..e558e0bc26ee9 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IfMatchPreconditionExtensions.cs @@ -18,15 +18,12 @@ internal static class IfMatchPreconditionExtensions /// The ifMatch header value. internal static string GetIfMatchHeaderValue(IfMatchPrecondition precondition, string ETag) { - switch (precondition) + return precondition switch { - case IfMatchPrecondition.IfMatch: - return $"\"{ETag}\""; - case IfMatchPrecondition.UnconditionalIfMatch: - return "*"; - default: - return null; - } + IfMatchPrecondition.IfMatch => $"\"{ETag}\"", + IfMatchPrecondition.UnconditionalIfMatch => "*", + _ => null, + }; } } } From aad01d6c229f6857f0e65bcd4dc9a75ae3abf249 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 09:50:52 -0700 Subject: [PATCH 07/11] Update parameter comments. --- sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs | 4 ++-- sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index f04eb22f766ab..4a01f2217bc60 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -44,7 +44,7 @@ internal DevicesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// Create or update a device identity. /// /// the device identity to create. - /// The condition on which to perform this operation. To create a device identity, this value must be equal to . + /// The condition on which to perform this operation. To create a device identity, this value must be equal to . /// The cancellation token. /// The created device identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -61,7 +61,7 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// Create or update a device identity. /// /// the device identity to create. - /// The condition on which to perform this operation. To create a device identity, this value must be equal to . + /// The condition on which to perform this operation. To create a device identity, this value must be equal to . /// The cancellation token. /// The created device identity and the http response . public virtual Response CreateOrUpdateIdentity( diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs index 295b9cd9db26e..29a89948e1fc5 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs @@ -42,7 +42,7 @@ internal ModulesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// Create a module identity. /// /// The module identity to create. - /// The condition on which to perform this operation. To create a module identity, this value must be equal to . + /// The condition on which to perform this operation. To create a module identity, this value must be equal to . /// The cancellation token. /// The created module identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -59,7 +59,7 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// Create a module identity. /// /// The module identity to create. - /// The condition on which to perform this operation. To create a module identity, this value must be equal to . + /// The condition on which to perform this operation. To create a module identity, this value must be equal to . /// The cancellation token. /// The created module identity and the http response . public virtual Response CreateOrUpdateIdentity( From 5ded401fd2d66e8ade8e003e5e2f1bb300c831df Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 09:55:59 -0700 Subject: [PATCH 08/11] re-record live tests --- ...cesClient_BulkCreation_DeviceWithTwin.json | 22 ++-- ...ient_BulkCreation_DeviceWithTwinAsync.json | 22 ++-- .../DevicesClient_BulkUpdate.json | 88 +++++++-------- .../DevicesClient_BulkUpdateAsync.json | 86 +++++++-------- .../DevicesClient_DeviceTwinLifecycle.json | 54 +++++----- ...evicesClient_DeviceTwinLifecycleAsync.json | 54 +++++----- .../DevicesClient_IdentityLifecycle.json | 66 ++++++------ .../DevicesClient_IdentityLifecycleAsync.json | 66 ++++++------ .../DevicesClient_Query_GetTwins.json | 32 +++--- .../DevicesClient_Query_GetTwinsAsync.json | 53 ++++++--- ...sClient_UpdateDevice_EtagDoesNotMatch.json | 102 +++++++++--------- ...nt_UpdateDevice_EtagDoesNotMatchAsync.json | 94 ++++++++-------- 12 files changed, 384 insertions(+), 355 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json index e49cb538b6b98..fb5825ffd992c 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json @@ -8,7 +8,7 @@ "Content-Length": "1204", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "7016712d2594db6f1014befd36d0ff37", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "88565ec6-53a4-4198-8e6b-47f3e6788917" + "x-ms-request-id": "12c683af-c93c-4117-b9b2-17e6d51e8f0f" }, "ResponseBody": { "isSuccessful": true, @@ -36,7 +36,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8f73cdcfa527500eb6b9e2f677fe22e6", @@ -47,15 +47,15 @@ "ResponseHeaders": { "Content-Length": "690", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c4a878e1-03d0-427a-988f-87693a743bab" + "x-ms-request-id": "9630fe5f-db05-47bf-bdcb-c9768b17fe10" }, "ResponseBody": { "deviceId": "bulkDeviceWithTwin1109223729", "etag": "AAAAAAAAAAE=", - "deviceEtag": "MjI1NTA3MDQ4", + "deviceEtag": "OTU5NTAzODgy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -82,7 +82,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:56.9620999Z" + "$lastUpdated": "2020-06-29T16:55:26.7832143Z" }, "$version": 1 } @@ -100,7 +100,7 @@ "Content-Length": "594", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d533497f83be7a264a2956613633f386", @@ -111,10 +111,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c7bb2f84-9227-4547-b4f7-d9105d2f9bd3" + "x-ms-request-id": "bcd34db2-919e-43e0-9aa6-7ad37dd56959" }, "ResponseBody": { "isSuccessful": true, diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json index 08857579a75e1..ece63a6543f90 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json @@ -8,7 +8,7 @@ "Content-Length": "1205", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d568f5c8e57529c1e029374b1c53010a", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "925cd5dd-80ca-445d-9d00-78dd797280b1" + "x-ms-request-id": "3a209850-755e-4ba8-ac11-6e31d189f200" }, "ResponseBody": { "isSuccessful": true, @@ -36,7 +36,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "f08737db3f531255a2c51ba6431d0eda", @@ -47,15 +47,15 @@ "ResponseHeaders": { "Content-Length": "689", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "93475a97-5b70-4cbb-9c5b-665124c40cd0" + "x-ms-request-id": "8783b915-659c-48d8-949a-e6c14d16c2db" }, "ResponseBody": { "deviceId": "bulkDeviceWithTwin304767959", "etag": "AAAAAAAAAAE=", - "deviceEtag": "MjI1NTA3MDQ4", + "deviceEtag": "OTcwNTk2Mjc2", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -82,7 +82,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:56.9620999Z" + "$lastUpdated": "2020-06-29T16:55:26.8795432Z" }, "$version": 1 } @@ -100,7 +100,7 @@ "Content-Length": "595", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "e4bdc527c97c715eedadb728278b8cde", @@ -111,10 +111,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d6cf9170-0971-463f-91e5-093b0a650a9c" + "x-ms-request-id": "9419e0a4-4812-4fb6-97af-7a3196bd379e" }, "ResponseBody": { "isSuccessful": true, diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json index 086a33f613976..3d461ec7f84b1 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "641381e4f4e82e72fdd64d15ec9f16ee", @@ -23,16 +23,16 @@ "ResponseHeaders": { "Content-Length": "610", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022MjY2MTAxMTg5\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022MTU3NTc4OTU1\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "2e84c750-4294-4ab8-ad37-fcae34c3541b" + "x-ms-request-id": "57403830-4861-472f-9e4a-3dadb7146fc0" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate2058308758", - "generationId": "637287875370906029", - "etag": "MjY2MTAxMTg5", + "generationId": "637290465270736398", + "etag": "MTU3NTc4OTU1", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -42,8 +42,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "wKa6j4awgJXuMcgoYprRKEc52lPt7ih7v1AE5m\u002BT/Q0=", - "secondaryKey": "UJN6oE7rlg8fvppyi7pyc8paWKUitK88Y0df\u002BPO2oPA=" + "primaryKey": "8y4ukRz\u002B6Exo2daJoCsXiv7ykvegTkBlGmMgxlJGjQw=", + "secondaryKey": "enT6Q4OCgm6DWE36uV6aY8P7A/ge9PijFQ5zDqWSvRQ=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -65,7 +65,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "3e1134d9471886feac1982596376afac", @@ -79,16 +79,16 @@ "ResponseHeaders": { "Content-Length": "610", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NTY1MjMxNzA=\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022NDE2MzY4MTQ=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "2f5b1c81-7560-4feb-9888-783a07f6cc33" + "x-ms-request-id": "085b3bbc-475a-4b0e-9d24-8171d8aadf07" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1689940095", - "generationId": "637287875371218814", - "etag": "NTY1MjMxNzA=", + "generationId": "637290465271673796", + "etag": "NDE2MzY4MTQ=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -98,8 +98,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "JVR4HoZlhN1r9H68TExZfhkkW/DUfgRum/fqucNSirc=", - "secondaryKey": "zG64nxiQUjeDw/7Bgj9Z9CNWpRdwNQ/2vCQCyKp81mE=" + "primaryKey": "PJEquZf6Sb6NkorAlqsGEuft3sUdvx8YSWq3nkJWi8c=", + "secondaryKey": "awa04P3e4nYzxpTkYbBN1I8tUpVwGtf\u002BlJYjHA0PSDU=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -120,21 +120,21 @@ "Content-Length": "659", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "2f40eae5d092ea9e0fe7504fb5c8118a", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022MjY2MTAxMTg5\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022wKa6j4awgJXuMcgoYprRKEc52lPt7ih7v1AE5m\\u002BT/Q0=\u0022,\u0022secondaryKey\u0022:\u0022UJN6oE7rlg8fvppyi7pyc8paWKUitK88Y0df\\u002BPO2oPA=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022NTY1MjMxNzA=\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022JVR4HoZlhN1r9H68TExZfhkkW/DUfgRum/fqucNSirc=\u0022,\u0022secondaryKey\u0022:\u0022zG64nxiQUjeDw/7Bgj9Z9CNWpRdwNQ/2vCQCyKp81mE=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022MTU3NTc4OTU1\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u00228y4ukRz\\u002B6Exo2daJoCsXiv7ykvegTkBlGmMgxlJGjQw=\u0022,\u0022secondaryKey\u0022:\u0022enT6Q4OCgm6DWE36uV6aY8P7A/ge9PijFQ5zDqWSvRQ=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022NDE2MzY4MTQ=\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022PJEquZf6Sb6NkorAlqsGEuft3sUdvx8YSWq3nkJWi8c=\u0022,\u0022secondaryKey\u0022:\u0022awa04P3e4nYzxpTkYbBN1I8tUpVwGtf\\u002BlJYjHA0PSDU=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]", "StatusCode": 200, "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6f18a4e1-5814-4bcc-b813-d5e4a5f68d06" + "x-ms-request-id": "bf0dd4d4-6431-466a-99bd-ddd62d9c64be" }, "ResponseBody": { "isSuccessful": true, @@ -148,7 +148,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "c655ea9f58983acb15de3cdaefd49a5f", @@ -157,29 +157,29 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "621", + "Content-Length": "622", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022MjY2MTAxMTkw\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022MTU3NTc4OTU2\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "4b0374d2-3318-4a05-86e1-a152e9f6e828" + "x-ms-request-id": "045dac5d-33e2-49aa-9ac7-1e05a31b5134" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate2058308758", - "generationId": "637287875370906029", - "etag": "MjY2MTAxMTkw", + "generationId": "637290465270736398", + "etag": "MTU3NTc4OTU2", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:58:57.157364Z", + "statusUpdatedTime": "2020-06-29T16:55:27.2091047Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "wKa6j4awgJXuMcgoYprRKEc52lPt7ih7v1AE5m\u002BT/Q0=", - "secondaryKey": "UJN6oE7rlg8fvppyi7pyc8paWKUitK88Y0df\u002BPO2oPA=" + "primaryKey": "8y4ukRz\u002B6Exo2daJoCsXiv7ykvegTkBlGmMgxlJGjQw=", + "secondaryKey": "enT6Q4OCgm6DWE36uV6aY8P7A/ge9PijFQ5zDqWSvRQ=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -198,7 +198,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "b407689dbed608ed95262e31f6aed0e3", @@ -207,29 +207,29 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "621", + "Content-Length": "622", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NTY1MjMxNzE=\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022NDE2MzY4MTU=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c6deb5e0-dbab-4276-b8d3-0ca84df2f8ca" + "x-ms-request-id": "854cbd14-c6ee-4e1d-94b2-715742f1bfae" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1689940095", - "generationId": "637287875371218814", - "etag": "NTY1MjMxNzE=", + "generationId": "637290465271673796", + "etag": "NDE2MzY4MTU=", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:58:57.157364Z", + "statusUpdatedTime": "2020-06-29T16:55:27.2091047Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "JVR4HoZlhN1r9H68TExZfhkkW/DUfgRum/fqucNSirc=", - "secondaryKey": "zG64nxiQUjeDw/7Bgj9Z9CNWpRdwNQ/2vCQCyKp81mE=" + "primaryKey": "PJEquZf6Sb6NkorAlqsGEuft3sUdvx8YSWq3nkJWi8c=", + "secondaryKey": "awa04P3e4nYzxpTkYbBN1I8tUpVwGtf\u002BlJYjHA0PSDU=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -250,21 +250,21 @@ "Content-Length": "161", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "79baf707e8218d141f051ab494c4fa3b", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022MjY2MTAxMTg5\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022NTY1MjMxNzA=\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022MTU3NTc4OTU1\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022NDE2MzY4MTQ=\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", "StatusCode": 200, "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "e8004bc1-0992-4fef-ad30-ee0af3045f39" + "x-ms-request-id": "f789941a-2fcb-4e27-b6aa-b2bd6d324a3b" }, "ResponseBody": { "isSuccessful": true, diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json index b378481a0f93b..40f2fe955d438 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "696cb7b4ddffbd7be581104269a73535", @@ -23,16 +23,16 @@ "ResponseHeaders": { "Content-Length": "610", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NTgxMzQ1NDYx\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022NzY2NzcwNDE1\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d02c8f0a-2623-4115-b266-76d6d4dfd7b3" + "x-ms-request-id": "b1894d45-7d2b-4da7-b92b-a7e7c086e7b0" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1349701714", - "generationId": "637287875370903847", - "etag": "NTgxMzQ1NDYx", + "generationId": "637290465272236144", + "etag": "NzY2NzcwNDE1", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -42,8 +42,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "7HoH71SynT13Rx/2Pt9f6NnFeWh5iEgv6dhlT56U7v0=", - "secondaryKey": "fpnB9l34SoQQXRq/irM2VHqqTPhZ4B4vjbQV89kpZug=" + "primaryKey": "OMA6aTQQsVRFiR6afzcysosaOCX0orhebOTJV4zza0U=", + "secondaryKey": "btFwEc2j1o2iOwIkb2W5NNJ1sRwwOEjUdC4FRlAR\u002BI8=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -65,7 +65,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "444f2432b2d486afabaae9f7b0a743fd", @@ -79,16 +79,16 @@ "ResponseHeaders": { "Content-Length": "609", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NjcxMTg5MTAx\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022MTc3NDAyOTA0\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "94461ba4-1c01-4062-a4a5-06f63fedfa04" + "x-ms-request-id": "b3c6fd4f-ad98-4d07-b2b3-0b731118ff3e" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate927166103", - "generationId": "637287875371235975", - "etag": "NjcxMTg5MTAx", + "generationId": "637290465272620276", + "etag": "MTc3NDAyOTA0", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -98,8 +98,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "6b2L\u002BMrKun7K7EBKi0SNMLpCTzKg/rwI7CUCszffIj4=", - "secondaryKey": "YnkKUrmvPkxwvbi8ynd7V/Fp7we\u002BcAI/9Ag26n6YXB8=" + "primaryKey": "e9\u002BhhNklLmcMHxfq2FtBC5QwCBC\u002BmR6HnQ\u002BSXZclmeI=", + "secondaryKey": "wvcJD4pBBYVlBA316xg\u002BQLMkYmZQQRBESxfWr2oVtXc=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -117,24 +117,24 @@ "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "658", + "Content-Length": "673", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "aa25f27eb7c38322ae910087acceefb6", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022NTgxMzQ1NDYx\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u00227HoH71SynT13Rx/2Pt9f6NnFeWh5iEgv6dhlT56U7v0=\u0022,\u0022secondaryKey\u0022:\u0022fpnB9l34SoQQXRq/irM2VHqqTPhZ4B4vjbQV89kpZug=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022NjcxMTg5MTAx\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u00226b2L\\u002BMrKun7K7EBKi0SNMLpCTzKg/rwI7CUCszffIj4=\u0022,\u0022secondaryKey\u0022:\u0022YnkKUrmvPkxwvbi8ynd7V/Fp7we\\u002BcAI/9Ag26n6YXB8=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022NzY2NzcwNDE1\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022OMA6aTQQsVRFiR6afzcysosaOCX0orhebOTJV4zza0U=\u0022,\u0022secondaryKey\u0022:\u0022btFwEc2j1o2iOwIkb2W5NNJ1sRwwOEjUdC4FRlAR\\u002BI8=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022MTc3NDAyOTA0\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022e9\\u002BhhNklLmcMHxfq2FtBC5QwCBC\\u002BmR6HnQ\\u002BSXZclmeI=\u0022,\u0022secondaryKey\u0022:\u0022wvcJD4pBBYVlBA316xg\\u002BQLMkYmZQQRBESxfWr2oVtXc=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]", "StatusCode": 200, "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1c53617d-3cb1-4111-8fcc-3e6da9f19e19" + "x-ms-request-id": "54e27dc6-b117-4e5d-a220-9e74b2a4bd50" }, "ResponseBody": { "isSuccessful": true, @@ -148,7 +148,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "cfdd23170e7505e0bde3543291c635d9", @@ -159,27 +159,27 @@ "ResponseHeaders": { "Content-Length": "622", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NTgxMzQ1NDYy\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022NzY2NzcwNDE2\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "93348282-980d-4b92-83bd-5ef4145de50c" + "x-ms-request-id": "218214ab-fe8c-471e-9a45-bd2a9da2fd7b" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1349701714", - "generationId": "637287875370903847", - "etag": "NTgxMzQ1NDYy", + "generationId": "637290465272236144", + "etag": "NzY2NzcwNDE2", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:58:57.1651198Z", + "statusUpdatedTime": "2020-06-29T16:55:27.3080793Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "7HoH71SynT13Rx/2Pt9f6NnFeWh5iEgv6dhlT56U7v0=", - "secondaryKey": "fpnB9l34SoQQXRq/irM2VHqqTPhZ4B4vjbQV89kpZug=" + "primaryKey": "OMA6aTQQsVRFiR6afzcysosaOCX0orhebOTJV4zza0U=", + "secondaryKey": "btFwEc2j1o2iOwIkb2W5NNJ1sRwwOEjUdC4FRlAR\u002BI8=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -198,7 +198,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "b5eb45cc8a107ad301cb9542b127dadc", @@ -209,27 +209,27 @@ "ResponseHeaders": { "Content-Length": "621", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NjcxMTg5MTAy\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022MTc3NDAyOTA1\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "46aa6ea3-9621-4643-b834-7d95da7a9716" + "x-ms-request-id": "0d1a36b4-f2a5-4ce9-a321-a307032c8346" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate927166103", - "generationId": "637287875371235975", - "etag": "NjcxMTg5MTAy", + "generationId": "637290465272620276", + "etag": "MTc3NDAyOTA1", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:58:57.1523907Z", + "statusUpdatedTime": "2020-06-29T16:55:27.3059846Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "6b2L\u002BMrKun7K7EBKi0SNMLpCTzKg/rwI7CUCszffIj4=", - "secondaryKey": "YnkKUrmvPkxwvbi8ynd7V/Fp7we\u002BcAI/9Ag26n6YXB8=" + "primaryKey": "e9\u002BhhNklLmcMHxfq2FtBC5QwCBC\u002BmR6HnQ\u002BSXZclmeI=", + "secondaryKey": "wvcJD4pBBYVlBA316xg\u002BQLMkYmZQQRBESxfWr2oVtXc=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -250,21 +250,21 @@ "Content-Length": "160", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8ddf33bb74c97088121fede063f0f1e8", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022NTgxMzQ1NDYx\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022NjcxMTg5MTAx\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022NzY2NzcwNDE1\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022MTc3NDAyOTA0\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", "StatusCode": 200, "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6aae0153-0c20-4e27-8748-0c967a43ad16" + "x-ms-request-id": "5e0a7043-4af6-4deb-ac72-72c230aabda3" }, "ResponseBody": { "isSuccessful": true, diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json index 1e1ec86f57ab8..137861bbe5425 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "3fc573c466686001c7ff41343a27d538", @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "611", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022ODkzODc2ODk0\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022NDc4NTExMjQy\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "5f779711-8ca3-463e-89ec-a12471cd110c" + "x-ms-request-id": "823bd3f0-07d8-4638-a3b7-c2e4585c9075" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice10350067", - "generationId": "637287875372513971", - "etag": "ODkzODc2ODk0", + "generationId": "637290465273124747", + "etag": "NDc4NTExMjQy", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "bYf7cJV3chrDQLM2ZiFXuFTHUzCqVKDK69Vu2/jVayk=", - "secondaryKey": "jCcouDrrMlxjtw4e8tpYoivWJVCKDtSOQGPQ3\u002BdRLQ8=" + "primaryKey": "BzoIFTTmYltyVFVmXNAvd9zWdYKMCckIa349Egh8tlw=", + "secondaryKey": "d0iRzAoB0W97k7k2vMbxYitcjvK\u002BFzDrxsV7bq57AQs=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -61,7 +61,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4f613570030fbaa6d05fd462b2f0447b", @@ -72,15 +72,15 @@ "ResponseHeaders": { "Content-Length": "587", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "f3874ca2-e7e2-4d5c-b988-f1489c687183" + "x-ms-request-id": "85f919ae-1964-487c-89d7-59f10869e7f7" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice10350067", "etag": "AAAAAAAAAAE=", - "deviceEtag": "ODkzODc2ODk0", + "deviceEtag": "NDc4NTExMjQy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -95,13 +95,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2513971Z" + "$lastUpdated": "2020-06-29T16:55:27.3124747Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2513971Z" + "$lastUpdated": "2020-06-29T16:55:27.3124747Z" }, "$version": 1 } @@ -120,7 +120,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4d3853d2c77fbf38574891f935937306", @@ -131,21 +131,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2513971Z" + "$lastUpdated": "2020-06-29T16:55:27.3124747Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2513971Z" + "$lastUpdated": "2020-06-29T16:55:27.3124747Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "ODkzODc2ODk0", + "deviceEtag": "NDc4NTExMjQy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -161,15 +161,15 @@ "ResponseHeaders": { "Content-Length": "713", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a08d8f3e-e9ed-4145-a361-dd506c96a769" + "x-ms-request-id": "84c4a84f-6c3e-4bb3-b246-939381ba113e" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice10350067", "etag": "AAAAAAAAAAI=", - "deviceEtag": "ODkzODc2ODk0", + "deviceEtag": "NDc4NTExMjQy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -185,10 +185,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.3451469Z", + "$lastUpdated": "2020-06-29T16:55:27.3749766Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-26T16:58:57.3451469Z", + "$lastUpdated": "2020-06-29T16:55:27.3749766Z", "$lastUpdatedVersion": 2 } }, @@ -196,7 +196,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2513971Z" + "$lastUpdated": "2020-06-29T16:55:27.3124747Z" }, "$version": 1 } @@ -213,7 +213,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "9457a6e0d26ac1e3cc0a6f09929fadd7", @@ -223,10 +223,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "90b44237-e2d0-42b8-8b02-3e3022f34fd4" + "x-ms-request-id": "8db09113-2057-45d9-bf84-daa5a0252ba9" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json index f17d6d1723caa..5e6a9be234ac5 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "c3bc58b2d82a3592661c46c19a024a43", @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "613", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NDc0MTA4MTUy\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022MzAwMTIwODcz\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a72a9a5d-9f17-4838-a142-e59ae5acb59a" + "x-ms-request-id": "dd21f0b5-ccb2-4f2f-b540-c72fe20cdcf2" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice2112406490", - "generationId": "637287875372524715", - "etag": "NDc0MTA4MTUy", + "generationId": "637290465274926501", + "etag": "MzAwMTIwODcz", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "gNXRhVnbSOljDz3ZSGQPqRnwd2yiVg2vkP\u002Brvj6sRh8=", - "secondaryKey": "pvRyOpFI5tyL23mFbawalyCsYOYXzmqqGBjtOhubDkg=" + "primaryKey": "7FB\u002BeQ16sqxDD/db/cq/dL5to3mRxOXD3AYYI4f/oVY=", + "secondaryKey": "Pmdp3F74YdjeSmfQgemsvKWoZmH142U7Lb2qGVsOM8w=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -61,7 +61,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "efc06b49465dda0c6b59baccfc4f1b6e", @@ -72,15 +72,15 @@ "ResponseHeaders": { "Content-Length": "589", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "ab268ec8-3685-41ad-98b5-1ff206f49fd3" + "x-ms-request-id": "dfcd6b49-6c51-40be-af5f-ac548a7edb7c" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice2112406490", "etag": "AAAAAAAAAAE=", - "deviceEtag": "NDc0MTA4MTUy", + "deviceEtag": "MzAwMTIwODcz", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -95,13 +95,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2524715Z" + "$lastUpdated": "2020-06-29T16:55:27.4926501Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2524715Z" + "$lastUpdated": "2020-06-29T16:55:27.4926501Z" }, "$version": 1 } @@ -120,7 +120,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "1d90e307d990685bba77ea75fd6c11c9", @@ -131,21 +131,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2524715Z" + "$lastUpdated": "2020-06-29T16:55:27.4926501Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2524715Z" + "$lastUpdated": "2020-06-29T16:55:27.4926501Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "NDc0MTA4MTUy", + "deviceEtag": "MzAwMTIwODcz", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -161,15 +161,15 @@ "ResponseHeaders": { "Content-Length": "715", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1b2f29fd-0428-460f-983d-f25fa63fe53b" + "x-ms-request-id": "5e3e3e64-4c99-42f3-99ff-6b083b1299e9" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice2112406490", "etag": "AAAAAAAAAAI=", - "deviceEtag": "NDc0MTA4MTUy", + "deviceEtag": "MzAwMTIwODcz", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -185,10 +185,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2993478Z", + "$lastUpdated": "2020-06-29T16:55:27.5551553Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-26T16:58:57.2993478Z", + "$lastUpdated": "2020-06-29T16:55:27.5551553Z", "$lastUpdatedVersion": 2 } }, @@ -196,7 +196,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-26T16:58:57.2524715Z" + "$lastUpdated": "2020-06-29T16:55:27.4926501Z" }, "$version": 1 } @@ -213,7 +213,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "89f2853940dc6b7d4ce258d01dc53816", @@ -223,10 +223,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "e1a77a67-9257-4514-bfca-853987d6dfd7" + "x-ms-request-id": "8ea73d68-c2bc-472e-b0d8-4bc2819ff71d" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json index d17a3b631f261..5ff38887caa0f 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "5679c9bcad546a8756dc203fa49513a9", @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "616", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022OTc3Mjc0MTc4\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022MzE0NzMzMzY=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "680ed22b-394a-4d38-b735-2880ae56e60f" + "x-ms-request-id": "cad35f01-c0ab-4732-bfad-c38116c60788" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287875373996012", - "etag": "OTc3Mjc0MTc4", + "generationId": "637290465275201816", + "etag": "MzE0NzMzMzY=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "D1C6BR\u002Bsm\u002B6YqOZD6t5Rg8rZ98x14w\u002BGueBJu\u002B9pJaI=", - "secondaryKey": "PfO8eXYTgjeoYzlA\u002B1rJtEXEkd3Um8EsvME1Xsgjxi0=" + "primaryKey": "fuv0XiSoJmUfofOLKju0KQgPF5Wpzu49JqqrkaW252k=", + "secondaryKey": "w2FKtDGkMA43T2upbFtERkAv8/mmRgvPBR/HqWqmGaY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -61,7 +61,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "2bc871c8a62a1c75c0206b5953bf15b9", @@ -72,16 +72,16 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022OTc3Mjc0MTc4\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022MzE0NzMzMzY=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "3d67f2c9-03b6-484e-947e-e8190380b6d8" + "x-ms-request-id": "91aafbde-038c-49eb-8426-07e1eb0f59b1" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287875373996012", - "etag": "OTc3Mjc0MTc4", + "generationId": "637290465275201816", + "etag": "MzE0NzMzMzY=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -91,8 +91,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "D1C6BR\u002Bsm\u002B6YqOZD6t5Rg8rZ98x14w\u002BGueBJu\u002B9pJaI=", - "secondaryKey": "PfO8eXYTgjeoYzlA\u002B1rJtEXEkd3Um8EsvME1Xsgjxi0=" + "primaryKey": "fuv0XiSoJmUfofOLKju0KQgPF5Wpzu49JqqrkaW252k=", + "secondaryKey": "w2FKtDGkMA43T2upbFtERkAv8/mmRgvPBR/HqWqmGaY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -110,11 +110,11 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "598", + "Content-Length": "573", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "33602e35d25224b76c1cf1bfa4037156", @@ -122,8 +122,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287875373996012", - "etag": "OTc3Mjc0MTc4", + "generationId": "637290465275201816", + "etag": "MzE0NzMzMzY=", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -132,8 +132,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "D1C6BR\u002Bsm\u002B6YqOZD6t5Rg8rZ98x14w\u002BGueBJu\u002B9pJaI=", - "secondaryKey": "PfO8eXYTgjeoYzlA\u002B1rJtEXEkd3Um8EsvME1Xsgjxi0=" + "primaryKey": "fuv0XiSoJmUfofOLKju0KQgPF5Wpzu49JqqrkaW252k=", + "secondaryKey": "w2FKtDGkMA43T2upbFtERkAv8/mmRgvPBR/HqWqmGaY=" }, "x509Thumbprint": {}, "type": "sas" @@ -146,27 +146,27 @@ "ResponseHeaders": { "Content-Length": "628", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022OTc3Mjc0MTc5\u0022", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", + "ETag": "\u0022MzE0NzMzMzc=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "61bfd1e4-5cf2-419d-a5cc-5953fa532f33" + "x-ms-request-id": "a7d0e3ed-24dd-49d0-b9b4-84ead0d05250" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287875373996012", - "etag": "OTc3Mjc0MTc5", + "generationId": "637290465275201816", + "etag": "MzE0NzMzMzc=", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:58:57.5394345Z", + "statusUpdatedTime": "2020-06-29T16:55:27.5683786Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "D1C6BR\u002Bsm\u002B6YqOZD6t5Rg8rZ98x14w\u002BGueBJu\u002B9pJaI=", - "secondaryKey": "PfO8eXYTgjeoYzlA\u002B1rJtEXEkd3Um8EsvME1Xsgjxi0=" + "primaryKey": "fuv0XiSoJmUfofOLKju0KQgPF5Wpzu49JqqrkaW252k=", + "secondaryKey": "w2FKtDGkMA43T2upbFtERkAv8/mmRgvPBR/HqWqmGaY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -186,7 +186,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "a2545d0ae9c8158c545c9633412e1796", @@ -196,10 +196,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:26 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "7c5bc46e-a89b-46b0-8b62-67127c60a349" + "x-ms-request-id": "61a07f51-3a6d-4bd3-a2e5-6c341d011d05" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json index 5b427aaf42a3b..2997658a3fe2a 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "50a2cb3c13b3e7cbf895467b122e43c5", @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "616", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NDA1NDEyNzQ1\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022NzEyNDA0MjY4\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "8a3a9f0d-48fe-4e3b-a0a7-21e276db6b85" + "x-ms-request-id": "bb0b418b-49f5-4b56-a06b-441055ece028" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287875373579546", - "etag": "NDA1NDEyNzQ1", + "generationId": "637290465277519551", + "etag": "NzEyNDA0MjY4", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "4z/IqFx/kjCdkYeYgJ8Dfw4WO8S1jVuEFbpHEbV6WXw=", - "secondaryKey": "I6cDOCClbl4zYTDD/J/kPmuH74QRtQ4sqw2opPscu7o=" + "primaryKey": "suwjwpf0siBJwa4DKI3qDi74SnRCGWmwrmbGIGbwexk=", + "secondaryKey": "Sz9jISjabRC6eRcYr7z3vf\u002BblxV7VjHNFQKYnny16YY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -61,7 +61,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "0e1c90f63341274e96d84d07faccdc7d", @@ -72,16 +72,16 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NDA1NDEyNzQ1\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022NzEyNDA0MjY4\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "eb2a544d-a0d3-4c15-909f-547f3edfa516" + "x-ms-request-id": "09b6dab8-2e03-475f-88b5-366965f18296" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287875373579546", - "etag": "NDA1NDEyNzQ1", + "generationId": "637290465277519551", + "etag": "NzEyNDA0MjY4", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -91,8 +91,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "4z/IqFx/kjCdkYeYgJ8Dfw4WO8S1jVuEFbpHEbV6WXw=", - "secondaryKey": "I6cDOCClbl4zYTDD/J/kPmuH74QRtQ4sqw2opPscu7o=" + "primaryKey": "suwjwpf0siBJwa4DKI3qDi74SnRCGWmwrmbGIGbwexk=", + "secondaryKey": "Sz9jISjabRC6eRcYr7z3vf\u002BblxV7VjHNFQKYnny16YY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -110,11 +110,11 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "573", + "Content-Length": "578", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "f1fab84acbd08c2223e4d552e945d17f", @@ -122,8 +122,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287875373579546", - "etag": "NDA1NDEyNzQ1", + "generationId": "637290465277519551", + "etag": "NzEyNDA0MjY4", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -132,8 +132,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "4z/IqFx/kjCdkYeYgJ8Dfw4WO8S1jVuEFbpHEbV6WXw=", - "secondaryKey": "I6cDOCClbl4zYTDD/J/kPmuH74QRtQ4sqw2opPscu7o=" + "primaryKey": "suwjwpf0siBJwa4DKI3qDi74SnRCGWmwrmbGIGbwexk=", + "secondaryKey": "Sz9jISjabRC6eRcYr7z3vf\u002BblxV7VjHNFQKYnny16YY=" }, "x509Thumbprint": {}, "type": "sas" @@ -146,27 +146,27 @@ "ResponseHeaders": { "Content-Length": "628", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", - "ETag": "\u0022NDA1NDEyNzQ2\u0022", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", + "ETag": "\u0022NzEyNDA0MjY5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "111d0f8f-67bc-4daf-9e0a-692dbc4d9ad6" + "x-ms-request-id": "30714639-de94-4fc5-89f0-ca86cb939fe5" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287875373579546", - "etag": "NDA1NDEyNzQ2", + "generationId": "637290465277519551", + "etag": "NzEyNDA0MjY5", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:58:57.4126501Z", + "statusUpdatedTime": "2020-06-29T16:55:27.8178006Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "4z/IqFx/kjCdkYeYgJ8Dfw4WO8S1jVuEFbpHEbV6WXw=", - "secondaryKey": "I6cDOCClbl4zYTDD/J/kPmuH74QRtQ4sqw2opPscu7o=" + "primaryKey": "suwjwpf0siBJwa4DKI3qDi74SnRCGWmwrmbGIGbwexk=", + "secondaryKey": "Sz9jISjabRC6eRcYr7z3vf\u002BblxV7VjHNFQKYnny16YY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -186,7 +186,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "e95fc3fecb2a08ec7d7abadbc5c4ed2c", @@ -196,10 +196,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c0b3c07a-d4cf-4fa9-9ae6-19445e02e40c" + "x-ms-request-id": "8efc72bf-1246-4466-b5cd-a80c3e193c6d" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json index 2ba490e37d04d..42273ccc4e0f8 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json @@ -8,7 +8,7 @@ "Content-Length": "704", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "ee5245ea8beec4801e9fa909dea51ff2", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "63e91f80-3e10-43d3-a12f-b1eda63b03cb" + "x-ms-request-id": "64193b02-3fd4-474d-8b30-c4199ef8eb9f" }, "ResponseBody": { "isSuccessful": true, @@ -38,7 +38,7 @@ "Content-Length": "33", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8b4854735241f9d5c7c305f99c28ab62", @@ -49,15 +49,15 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "13888", + "Content-Length": "3952", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:02 GMT", + "Date": "Mon, 29 Jun 2020 16:55:27 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "b669bb25-ccb9-4914-84b8-8fe847a314bb" + "x-ms-request-id": "5dd78d40-b16e-467b-9037-abe3f4d33dc7" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjcyNjI3NDA5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4709469Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4709469Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTgxMzQ1NDYy\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-26T16:58:57.1651198Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.0903847Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.0903847Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device161\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzkwMzEzNjE2\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:36:12.8628213Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:36:12.8628213Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device51\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM2OTQ5NjQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:21.403378Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:21.403378Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTE0NDkyODIy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1NjQ0NDM3NQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device197\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjM2MTQ2OTg0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:33:27.9817988Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:33:27.9817988Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTE0NDkyODIy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device36\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyOTkxMjQ0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:01.6778264Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:01.6778264Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk4NzY3Mzk4\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjgwMjc0MTE0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7670192Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7670192Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1NjQ0NDM3NQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device133\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM2MzU3ODEz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:55.5997361Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:55.5997361Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA3NTA4MTcx\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674318Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674318Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device101\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA0MzM4MDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:53.046734Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:53.046734Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjE3ODc2MDY0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7696343Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7696343Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjIzODQ1NTUy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7718128Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7718128Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDUyNDE0NTkz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4701316Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4701316Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDkwMDMxNjQ3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.5184886Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.5184886Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTE0NDkyODIy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQ1Nzg1Mjcy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4616908Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4616908Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin30389356\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTY1NzQ5NTc5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022,\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022$lastUpdatedVersion\u0022:1,\u0022user\u0022:{\u0022$lastUpdated\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022$lastUpdatedVersion\u0022:1}},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:26.7458686Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTU3NTc4OTU2\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-29T16:55:27.2091047Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.0736398Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.0736398Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022TwinLifecycleDevice2112406490\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAI=\u0022,\u0022deviceEtag\u0022:\u0022MzAwMTIwODcz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:3,\u0022properties\u0022:{\u0022desired\u0022:{\u0022username\u0022:\u0022userA\u0022,\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.5551553Z\u0022,\u0022$lastUpdatedVersion\u0022:2,\u0022username\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.5551553Z\u0022,\u0022$lastUpdatedVersion\u0022:2}},\u0022$version\u0022:2},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.4926501Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device37\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Njk2ODk5NzIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1377918686\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDQwMzQxOTU3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022,\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022$lastUpdatedVersion\u0022:1,\u0022user\u0022:{\u0022$lastUpdated\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022$lastUpdatedVersion\u0022:1}},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:26.8091759Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin782746723\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTgxNDAzMjUw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022,\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022$lastUpdatedVersion\u0022:1,\u0022user\u0022:{\u0022$lastUpdated\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022$lastUpdatedVersion\u0022:1}},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:26.8387869Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices/query?api-version=2020-03-13", @@ -67,7 +67,7 @@ "Content-Length": "33", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "813856edcee31cdf24ef1f1bad548ca7", @@ -78,15 +78,15 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "15037", + "Content-Length": "12184", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:04 GMT", + "Date": "Mon, 29 Jun 2020 16:55:29 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "7178c677-230a-4f95-9799-6ada942f1f22" + "x-ms-request-id": "3fd67572-8b05-4df8-9428-4c906afd0642" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjE3ODc2MDY0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7696343Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7696343Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjcyNjI3NDA5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4709469Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4709469Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxODUxMTgxNA==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7693561Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7693561Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk4NzY3Mzk4\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device161\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzkwMzEzNjE2\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:36:12.8628213Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:36:12.8628213Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device51\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM2OTQ5NjQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:21.403378Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:21.403378Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTE0NDkyODIy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1NjQ0NDM3NQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device197\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjM2MTQ2OTg0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:33:27.9817988Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:33:27.9817988Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTE0NDkyODIy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device36\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyOTkxMjQ0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:01.6778264Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:01.6778264Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk4NzY3Mzk4\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjgwMjc0MTE0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7670192Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7670192Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1NjQ0NDM3NQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7634154Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device133\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM2MzU3ODEz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:55.5997361Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:55.5997361Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA3NTA4MTcx\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674318Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674318Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device101\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA0MzM4MDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:53.046734Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:53.046734Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjE3ODc2MDY0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7696343Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7696343Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjIzODQ1NTUy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7718128Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7718128Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDUyNDE0NTkz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4701316Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4701316Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDkwMDMxNjQ3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.5184886Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.5184886Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTE0NDkyODIy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.7609714Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQ1Nzg1Mjcy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4616908Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4616908Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY0OTgxODEz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7293852Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7293852Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODg0MTM3ODUw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzcwNjE3MDIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:28.7138569Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:28.7138569Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjYxNTc0Nzc3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device37\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Njk2ODk5NzIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzY4NjkwNzMw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6741407Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6741407Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzEyMDIxNzg3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjYxNTc0Nzc3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0ODQ4NjIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6249612Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6249612Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTU5MTEyNzEx\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7053697Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7053697Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzEyMDIxNzg3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTc3MzA2MDg5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9081924Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9081924Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQ1Mjc0Njg2\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9075143Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9075143Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODg0MTM3ODUw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjAxNDczMDIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7043762Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7043762Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU0MDQ1MTMy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9382933Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9382933Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjEzMTMwMTI1\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9530808Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9530808Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA0NzcxNTU5MQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9021281Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9021281Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", @@ -96,7 +96,7 @@ "Content-Length": "514", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "2883277f28c298d36f59272a858728f5", @@ -107,10 +107,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:04 GMT", + "Date": "Mon, 29 Jun 2020 16:55:29 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "caca9dbb-02cd-4c85-a3f4-14dc80240746" + "x-ms-request-id": "66602a3f-8575-4e1c-8c9c-e8d39072e260" }, "ResponseBody": { "isSuccessful": true, diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json index e8c878c9782a5..c7e81b6a11e9b 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json @@ -8,7 +8,7 @@ "Content-Length": "708", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "7742f074e1e91f6720ab9f76689c6096", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:58:56 GMT", + "Date": "Mon, 29 Jun 2020 16:55:28 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c83a3cdf-58bb-4a94-9ba0-9322c7c8eb9a" + "x-ms-request-id": "e20a6b9f-d9c6-4f9e-9194-41288e34c08f" }, "ResponseBody": { "isSuccessful": true, @@ -38,7 +38,7 @@ "Content-Length": "33", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "c39e4840ff4bab1dc877bf0ac4e42245", @@ -49,15 +49,44 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "9818", + "Content-Length": "10441", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:13 GMT", + "Date": "Mon, 29 Jun 2020 16:55:28 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "0055c4ea-c7c1-4e65-ab0e-e17b598efbce" + "x-ms-request-id": "1fc9e93d-09a9-4cc2-bdb8-b3e52a473b29" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjcyNjI3NDA5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4709469Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4709469Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTgxMzQ1NDYy\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-26T16:58:57.1651198Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.0903847Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.0903847Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk4NzY3Mzk4\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device161\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzkwMzEzNjE2\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:36:12.8628213Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:36:12.8628213Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device51\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM2OTQ5NjQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:21.403378Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:21.403378Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device197\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjM2MTQ2OTg0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:33:27.9817988Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:33:27.9817988Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device36\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyOTkxMjQ0\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:01.6778264Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:01.6778264Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk4NzY3Mzk4\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4718032Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY1MTU2NTQ5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674692Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device133\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM2MzU3ODEz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:55.5997361Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:32:55.5997361Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA3NTA4MTcx\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674318Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4674318Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device101\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA0MzM4MDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:53.046734Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:35:53.046734Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDUyNDE0NTkz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4701316Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4701316Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDkwMDMxNjQ3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.5184886Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.5184886Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQ1Nzg1Mjcy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4616908Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T16:58:57.4616908Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDY0OTgxODEz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7293852Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7293852Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODg0MTM3ODUw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjYxNTc0Nzc3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device37\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Njk2ODk5NzIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzY4NjkwNzMw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6741407Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6741407Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzEyMDIxNzg3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjYxNTc0Nzc3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0ODQ4NjIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6249612Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6249612Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTU5MTEyNzEx\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7053697Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7053697Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzEyMDIxNzg3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTc3MzA2MDg5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9081924Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9081924Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQ1Mjc0Njg2\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9075143Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9075143Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODg0MTM3ODUw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjAxNDczMDIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7043762Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.7043762Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA0NzcxNTU5MQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9021281Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9021281Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/query?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "33", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c643cc0708de73078ae9f801339d085b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "7541", + "Content-Type": "application/json; charset=utf-8", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "55ed2440-a0e4-4f32-8038-e6cf571fad40" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODg0MTM3ODUw\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6669337Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzcwNjE3MDIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:28.7138569Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:28.7138569Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjYxNTc0Nzc3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device37\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Njk2ODk5NzIz\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:36:42.0703433Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzEyMDIxNzg3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTA0MDI2NDY3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.6373099Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjYxNTc0Nzc3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9169405Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzEyMDIxNzg3\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9026477Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTc3MzA2MDg5\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9081924Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9081924Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQ1Mjc0Njg2\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9075143Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9075143Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU0MDQ1MTMy\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9382933Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9382933Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjEzMTMwMTI1\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9530808Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9530808Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA0NzcxNTU5MQ==\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022statusUpdateTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022connectionState\u0022:\u0022Disconnected\u0022,\u0022lastActivityTime\u0022:\u00220001-01-01T00:00:00Z\u0022,\u0022cloudToDeviceMessageCount\u0022:0,\u0022authenticationType\u0022:\u0022sas\u0022,\u0022x509Thumbprint\u0022:{\u0022primaryThumbprint\u0022:null,\u0022secondaryThumbprint\u0022:null},\u0022version\u0022:2,\u0022properties\u0022:{\u0022desired\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9021281Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-29T16:55:27.9021281Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", @@ -67,10 +96,10 @@ "Content-Length": "518", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], - "x-ms-client-request-id": "c643cc0708de73078ae9f801339d085b", + "x-ms-client-request-id": "08c0f858bd0574e9d297ae72215c5b3c", "x-ms-return-client-request-id": "true" }, "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice328709140\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2044993392\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1686270456\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice512290233\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1918934926\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1046556416\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1497828432\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1753905059\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice568420481\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1904312372\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", @@ -78,10 +107,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:13 GMT", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "0c877844-25e8-4b2d-95b9-3ae4e92f5ac8" + "x-ms-request-id": "483d4d89-11a8-439a-ada1-85a95d203303" }, "ResponseBody": { "isSuccessful": true, diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatch.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatch.json index dbb0b69a54969..efd5cf29d41fa 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatch.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatch.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4c2e90d64191e11798937224f5a6efb7", @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "608", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:04 GMT", - "ETag": "\u0022MjM5NzAxNjcy\u0022", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "ETag": "\u0022ODczNTExNzQ3\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "e17384a6-7a5b-4240-8625-558eae3e84dd" + "x-ms-request-id": "939b9da3-84ff-49b3-ae84-6e7fbe720e45" }, "ResponseBody": { "deviceId": "UpdateWithETag1136204569", - "generationId": "637287875454485028", - "etag": "MjM5NzAxNjcy", + "generationId": "637290465304029308", + "etag": "ODczNTExNzQ3", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nHzeIIt8eabrzjmSi4NAIaEsqVb4oiMU4QO\u002BqXPXTzw=", - "secondaryKey": "0yrGpiNmQaV9saK68/SgSuTlMCtOd5f9wNGYmVq1\u002B4c=" + "primaryKey": "ecVIjnunV2xAcfMOMKpgWHT2hkL2Mb0YY0DAIM4/EKc=", + "secondaryKey": "mbUxOFxOwnWGUG1gUs39eCPi3dqqeNQ0GoI1F6NLzzc=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,11 +60,11 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "575", + "Content-Length": "565", "Content-Type": "application/json", - "If-Match": "\u0022MjM5NzAxNjcy\u0022", + "If-Match": "\u0022ODczNTExNzQ3\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8c8c960a2ac5261b87f4ad4246c87406", @@ -72,8 +72,8 @@ }, "RequestBody": { "deviceId": "UpdateWithETag1136204569", - "generationId": "637287875454485028", - "etag": "MjM5NzAxNjcy", + "generationId": "637290465304029308", + "etag": "ODczNTExNzQ3", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -82,8 +82,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nHzeIIt8eabrzjmSi4NAIaEsqVb4oiMU4QO\u002BqXPXTzw=", - "secondaryKey": "0yrGpiNmQaV9saK68/SgSuTlMCtOd5f9wNGYmVq1\u002B4c=" + "primaryKey": "ecVIjnunV2xAcfMOMKpgWHT2hkL2Mb0YY0DAIM4/EKc=", + "secondaryKey": "mbUxOFxOwnWGUG1gUs39eCPi3dqqeNQ0GoI1F6NLzzc=" }, "x509Thumbprint": {}, "type": "sas" @@ -96,27 +96,27 @@ "ResponseHeaders": { "Content-Length": "620", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:04 GMT", - "ETag": "\u0022MjM5NzAxNjcz\u0022", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "ETag": "\u0022ODczNTExNzQ4\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "ccad4927-df9d-48e8-8767-21f7d49c3a2f" + "x-ms-request-id": "259f5017-49ee-4ec5-a377-0456b0306545" }, "ResponseBody": { "deviceId": "UpdateWithETag1136204569", - "generationId": "637287875454485028", - "etag": "MjM5NzAxNjcz", + "generationId": "637290465304029308", + "etag": "ODczNTExNzQ4", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:59:05.4660672Z", + "statusUpdatedTime": "2020-06-29T16:55:30.4407188Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nHzeIIt8eabrzjmSi4NAIaEsqVb4oiMU4QO\u002BqXPXTzw=", - "secondaryKey": "0yrGpiNmQaV9saK68/SgSuTlMCtOd5f9wNGYmVq1\u002B4c=" + "primaryKey": "ecVIjnunV2xAcfMOMKpgWHT2hkL2Mb0YY0DAIM4/EKc=", + "secondaryKey": "mbUxOFxOwnWGUG1gUs39eCPi3dqqeNQ0GoI1F6NLzzc=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -134,11 +134,11 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "574", + "Content-Length": "564", "Content-Type": "application/json", - "If-Match": "\u0022MjM5NzAxNjcy\u0022", + "If-Match": "\u0022ODczNTExNzQ3\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "0100c8dbd7fc4e5bc3ecb5a22e21cbd8", @@ -146,8 +146,8 @@ }, "RequestBody": { "deviceId": "UpdateWithETag1136204569", - "generationId": "637287875454485028", - "etag": "MjM5NzAxNjcy", + "generationId": "637290465304029308", + "etag": "ODczNTExNzQ3", "connectionState": "Disconnected", "status": "enabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -156,8 +156,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nHzeIIt8eabrzjmSi4NAIaEsqVb4oiMU4QO\u002BqXPXTzw=", - "secondaryKey": "0yrGpiNmQaV9saK68/SgSuTlMCtOd5f9wNGYmVq1\u002B4c=" + "primaryKey": "ecVIjnunV2xAcfMOMKpgWHT2hkL2Mb0YY0DAIM4/EKc=", + "secondaryKey": "mbUxOFxOwnWGUG1gUs39eCPi3dqqeNQ0GoI1F6NLzzc=" }, "x509Thumbprint": {}, "type": "sas" @@ -168,17 +168,17 @@ }, "StatusCode": 412, "ResponseHeaders": { - "Content-Length": "162", + "Content-Length": "161", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:05 GMT", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", "iothub-errorcode": "PreconditionFailed", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "b77a64d4-f785-4aeb-bb93-400b29fe890f" + "x-ms-request-id": "0f95c4c4-b245-4a8b-a9f9-521425561eea" }, "ResponseBody": { "Message": "ErrorCode:PreconditionFailed;PreconditionFailed", - "ExceptionMessage": "Tracking ID:b77a64d4f7854aebbb93400b29fe890f-G:21-TimeStamp:06/26/2020 16:59:05" + "ExceptionMessage": "Tracking ID:0f95c4c4b2454a8ba9f9521425561eea-G:5-TimeStamp:06/29/2020 16:55:30" } }, { @@ -186,11 +186,11 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "574", + "Content-Length": "564", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "2d371ac637e0ab537507c49d93d49bd0", @@ -198,8 +198,8 @@ }, "RequestBody": { "deviceId": "UpdateWithETag1136204569", - "generationId": "637287875454485028", - "etag": "MjM5NzAxNjcy", + "generationId": "637290465304029308", + "etag": "ODczNTExNzQ3", "connectionState": "Disconnected", "status": "enabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -208,8 +208,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nHzeIIt8eabrzjmSi4NAIaEsqVb4oiMU4QO\u002BqXPXTzw=", - "secondaryKey": "0yrGpiNmQaV9saK68/SgSuTlMCtOd5f9wNGYmVq1\u002B4c=" + "primaryKey": "ecVIjnunV2xAcfMOMKpgWHT2hkL2Mb0YY0DAIM4/EKc=", + "secondaryKey": "mbUxOFxOwnWGUG1gUs39eCPi3dqqeNQ0GoI1F6NLzzc=" }, "x509Thumbprint": {}, "type": "sas" @@ -222,27 +222,27 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:05 GMT", - "ETag": "\u0022MjM5NzAxNjc0\u0022", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "ETag": "\u0022ODczNTExNzQ5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "929dab17-12cf-4f88-a767-aeacdd26b0a3" + "x-ms-request-id": "1ef5cf3d-42fa-41ba-8e96-e69394e30d52" }, "ResponseBody": { "deviceId": "UpdateWithETag1136204569", - "generationId": "637287875454485028", - "etag": "MjM5NzAxNjc0", + "generationId": "637290465304029308", + "etag": "ODczNTExNzQ5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:59:05.5441853Z", + "statusUpdatedTime": "2020-06-29T16:55:30.6906739Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nHzeIIt8eabrzjmSi4NAIaEsqVb4oiMU4QO\u002BqXPXTzw=", - "secondaryKey": "0yrGpiNmQaV9saK68/SgSuTlMCtOd5f9wNGYmVq1\u002B4c=" + "primaryKey": "ecVIjnunV2xAcfMOMKpgWHT2hkL2Mb0YY0DAIM4/EKc=", + "secondaryKey": "mbUxOFxOwnWGUG1gUs39eCPi3dqqeNQ0GoI1F6NLzzc=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -262,7 +262,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "2d486c1eeda632bb3a3ec9d97578f866", @@ -272,10 +272,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Fri, 26 Jun 2020 16:59:05 GMT", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "bf37dfef-632b-48e4-9d39-84a481abfc28" + "x-ms-request-id": "632bba2e-948f-4dae-acd9-92c84c971ff7" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatchAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatchAsync.json index 28d53ba015d96..8706142eaac80 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatchAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_UpdateDevice_EtagDoesNotMatchAsync.json @@ -9,7 +9,7 @@ "Content-Type": "application/json", "If-Match": "\u0022\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "5fda05c300d9d03114d7b0e5b58bc828", @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "607", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:14 GMT", - "ETag": "\u0022NzUyOTE5MDQx\u0022", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "ETag": "\u0022Njg5MDY4NjA2\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "2af2d1af-9469-47f4-ba9e-2125ae32724c" + "x-ms-request-id": "e8dd5965-d7e3-43d2-a9ef-0a480f605eb2" }, "ResponseBody": { "deviceId": "UpdateWithETag788075770", - "generationId": "637287875549665773", - "etag": "NzUyOTE5MDQx", + "generationId": "637290465312692339", + "etag": "Njg5MDY4NjA2", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "i9jEzgEcjX8kfgVhdFHTzviWJKzHHo/Ws09NvVgUaQU=", - "secondaryKey": "wz3ZTO\u002BJGQo69fFVzg0Fc0XhU94U063QuGLE\u002BexPYQE=" + "primaryKey": "IVAoH8UgwHrekLphPfKetC6JknUuTyxRwOaHNxIF8zc=", + "secondaryKey": "KxHRGDgEfSyWJ59x\u002BAcbNMMCMAuNnyCIeJ\u002BZetFSnt0=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -62,9 +62,9 @@ "Authorization": "Sanitized", "Content-Length": "574", "Content-Type": "application/json", - "If-Match": "\u0022NzUyOTE5MDQx\u0022", + "If-Match": "\u0022Njg5MDY4NjA2\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "acc0fd9cd0754b82609ba0a8aeeda969", @@ -72,8 +72,8 @@ }, "RequestBody": { "deviceId": "UpdateWithETag788075770", - "generationId": "637287875549665773", - "etag": "NzUyOTE5MDQx", + "generationId": "637290465312692339", + "etag": "Njg5MDY4NjA2", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -82,8 +82,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "i9jEzgEcjX8kfgVhdFHTzviWJKzHHo/Ws09NvVgUaQU=", - "secondaryKey": "wz3ZTO\u002BJGQo69fFVzg0Fc0XhU94U063QuGLE\u002BexPYQE=" + "primaryKey": "IVAoH8UgwHrekLphPfKetC6JknUuTyxRwOaHNxIF8zc=", + "secondaryKey": "KxHRGDgEfSyWJ59x\u002BAcbNMMCMAuNnyCIeJ\u002BZetFSnt0=" }, "x509Thumbprint": {}, "type": "sas" @@ -96,27 +96,27 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:14 GMT", - "ETag": "\u0022NzUyOTE5MDQy\u0022", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "ETag": "\u0022Njg5MDY4NjA3\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "22816598-296f-4605-9e49-93b9809ec1ea" + "x-ms-request-id": "4234aa2d-d554-4b93-b9e2-2650cd618630" }, "ResponseBody": { "deviceId": "UpdateWithETag788075770", - "generationId": "637287875549665773", - "etag": "NzUyOTE5MDQy", + "generationId": "637290465312692339", + "etag": "Njg5MDY4NjA3", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:59:15.0013758Z", + "statusUpdatedTime": "2020-06-29T16:55:31.3021711Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "i9jEzgEcjX8kfgVhdFHTzviWJKzHHo/Ws09NvVgUaQU=", - "secondaryKey": "wz3ZTO\u002BJGQo69fFVzg0Fc0XhU94U063QuGLE\u002BexPYQE=" + "primaryKey": "IVAoH8UgwHrekLphPfKetC6JknUuTyxRwOaHNxIF8zc=", + "secondaryKey": "KxHRGDgEfSyWJ59x\u002BAcbNMMCMAuNnyCIeJ\u002BZetFSnt0=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -136,9 +136,9 @@ "Authorization": "Sanitized", "Content-Length": "573", "Content-Type": "application/json", - "If-Match": "\u0022NzUyOTE5MDQx\u0022", + "If-Match": "\u0022Njg5MDY4NjA2\u0022", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "6424df86ce11b7673731d9e8f1f0163b", @@ -146,8 +146,8 @@ }, "RequestBody": { "deviceId": "UpdateWithETag788075770", - "generationId": "637287875549665773", - "etag": "NzUyOTE5MDQx", + "generationId": "637290465312692339", + "etag": "Njg5MDY4NjA2", "connectionState": "Disconnected", "status": "enabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -156,8 +156,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "i9jEzgEcjX8kfgVhdFHTzviWJKzHHo/Ws09NvVgUaQU=", - "secondaryKey": "wz3ZTO\u002BJGQo69fFVzg0Fc0XhU94U063QuGLE\u002BexPYQE=" + "primaryKey": "IVAoH8UgwHrekLphPfKetC6JknUuTyxRwOaHNxIF8zc=", + "secondaryKey": "KxHRGDgEfSyWJ59x\u002BAcbNMMCMAuNnyCIeJ\u002BZetFSnt0=" }, "x509Thumbprint": {}, "type": "sas" @@ -170,15 +170,15 @@ "ResponseHeaders": { "Content-Length": "161", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:14 GMT", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", "iothub-errorcode": "PreconditionFailed", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "2adf462b-3f6c-4476-8281-141d6ff58ced" + "x-ms-request-id": "4e78d49d-3f0f-40f5-babb-7c27fd4c8b10" }, "ResponseBody": { "Message": "ErrorCode:PreconditionFailed;PreconditionFailed", - "ExceptionMessage": "Tracking ID:2adf462b3f6c44768281141d6ff58ced-G:8-TimeStamp:06/26/2020 16:59:15" + "ExceptionMessage": "Tracking ID:4e78d49d3f0f40f5babb7c27fd4c8b10-G:5-TimeStamp:06/29/2020 16:55:31" } }, { @@ -190,7 +190,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "44a32205378bf284828eff3e60892227", @@ -198,8 +198,8 @@ }, "RequestBody": { "deviceId": "UpdateWithETag788075770", - "generationId": "637287875549665773", - "etag": "NzUyOTE5MDQx", + "generationId": "637290465312692339", + "etag": "Njg5MDY4NjA2", "connectionState": "Disconnected", "status": "enabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -208,8 +208,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "i9jEzgEcjX8kfgVhdFHTzviWJKzHHo/Ws09NvVgUaQU=", - "secondaryKey": "wz3ZTO\u002BJGQo69fFVzg0Fc0XhU94U063QuGLE\u002BexPYQE=" + "primaryKey": "IVAoH8UgwHrekLphPfKetC6JknUuTyxRwOaHNxIF8zc=", + "secondaryKey": "KxHRGDgEfSyWJ59x\u002BAcbNMMCMAuNnyCIeJ\u002BZetFSnt0=" }, "x509Thumbprint": {}, "type": "sas" @@ -222,27 +222,27 @@ "ResponseHeaders": { "Content-Length": "618", "Content-Type": "application/json; charset=utf-8", - "Date": "Fri, 26 Jun 2020 16:59:14 GMT", - "ETag": "\u0022NzUyOTE5MDQz\u0022", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", + "ETag": "\u0022Njg5MDY4NjA4\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c5f1d7e5-105c-440d-b021-8c8860268115" + "x-ms-request-id": "2d8fee32-06da-458b-9cbd-4b26408bd3ac" }, "ResponseBody": { "deviceId": "UpdateWithETag788075770", - "generationId": "637287875549665773", - "etag": "NzUyOTE5MDQz", + "generationId": "637290465312692339", + "etag": "Njg5MDY4NjA4", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-26T16:59:15.1105533Z", + "statusUpdatedTime": "2020-06-29T16:55:31.3646416Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "i9jEzgEcjX8kfgVhdFHTzviWJKzHHo/Ws09NvVgUaQU=", - "secondaryKey": "wz3ZTO\u002BJGQo69fFVzg0Fc0XhU94U063QuGLE\u002BexPYQE=" + "primaryKey": "IVAoH8UgwHrekLphPfKetC6JknUuTyxRwOaHNxIF8zc=", + "secondaryKey": "KxHRGDgEfSyWJ59x\u002BAcbNMMCMAuNnyCIeJ\u002BZetFSnt0=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -262,7 +262,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200626.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200629.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d55e472e6367ce1696087444f79a5a70", @@ -272,10 +272,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Fri, 26 Jun 2020 16:59:14 GMT", + "Date": "Mon, 29 Jun 2020 16:55:30 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1fb3a346-f9e3-476a-b103-1e2ae6f0ec13" + "x-ms-request-id": "6e7b8428-c163-40d1-a1f8-5063875a630b" }, "ResponseBody": [] } From c5c6599009258c8dea1f0f5ae9d11a3adf1ff87b Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 10:03:55 -0700 Subject: [PATCH 09/11] update comments. --- sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs | 10 +++++----- sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 4a01f2217bc60..79e3239fd6989 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -43,8 +43,8 @@ internal DevicesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// /// Create or update a device identity. /// - /// the device identity to create. - /// The condition on which to perform this operation. To create a device identity, this value must be equal to . + /// the device identity to create or update. + /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . /// The cancellation token. /// The created device identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -60,8 +60,8 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// /// Create or update a device identity. /// - /// the device identity to create. - /// The condition on which to perform this operation. To create a device identity, this value must be equal to . + /// the device identity to create or update. + /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . /// The cancellation token. /// The created device identity and the http response . public virtual Response CreateOrUpdateIdentity( @@ -99,7 +99,7 @@ public virtual Response GetIdentity(string deviceId, Cancellatio /// /// Delete a single device identity. /// - /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to or equal to . + /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to ."/>. /// The condition on which to delete the device. /// The cancellation token. /// The http response . diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs index 29a89948e1fc5..087a8393728c4 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs @@ -41,8 +41,8 @@ internal ModulesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// /// Create a module identity. /// - /// The module identity to create. - /// The condition on which to perform this operation. To create a module identity, this value must be equal to . + /// The module identity to create or update. + /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . /// The cancellation token. /// The created module identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -58,8 +58,8 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// /// Create a module identity. /// - /// The module identity to create. - /// The condition on which to perform this operation. To create a module identity, this value must be equal to . + /// The module identity to create or update. + /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . /// The cancellation token. /// The created module identity and the http response . public virtual Response CreateOrUpdateIdentity( @@ -123,7 +123,7 @@ public virtual Response> GetIdentities(string devi /// /// Delete a single module identity. /// - /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to or equal to . + /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to . /// The condition on which to delete the module identity. /// The cancellation token. /// The http response . @@ -140,7 +140,7 @@ public virtual Task DeleteIdentityAsync( /// /// Delete a single module identity. /// - /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to or equal to . + /// The module identity to delete. If no ETag is present on the module identity, then the condition must be equal to . /// The condition on which to delete the module identity. /// The cancellation token. /// The http response . From 4493514382d07dbdd9f7913f7cc6f40eb606d59e Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 11:36:41 -0700 Subject: [PATCH 10/11] Update comments on CreateOrUpdate APIs --- sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs | 10 ++++++++-- sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 79e3239fd6989..0f772247d7fcc 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -44,7 +44,10 @@ internal DevicesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// Create or update a device identity. /// /// the device identity to create or update. - /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . + /// The condition on which to perform this operation. + /// In case of create, the condition must be equal to . + /// In case of update, if no ETag is present on the device, then the condition must be equal to . + /// /// The cancellation token. /// The created device identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -61,7 +64,10 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// Create or update a device identity. /// /// the device identity to create or update. - /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . + /// The condition on which to perform this operation. + /// In case of create, the condition must be equal to . + /// In case of update, if no ETag is present on the device, then the condition must be equal to . + /// /// The cancellation token. /// The created device identity and the http response . public virtual Response CreateOrUpdateIdentity( diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs index 087a8393728c4..fa012add423e4 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/ModulesClient.cs @@ -42,7 +42,10 @@ internal ModulesClient(RegistryManagerRestClient registryManagerClient, TwinRest /// Create a module identity. /// /// The module identity to create or update. - /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . + /// The condition on which to perform this operation. + /// In case of create, the condition must be equal to . + /// In case of update, if no ETag is present on the device, then the condition must be equal to . + /// /// The cancellation token. /// The created module identity and the http response . public virtual Task> CreateOrUpdateIdentityAsync( @@ -59,7 +62,10 @@ public virtual Task> CreateOrUpdateIdentityAsync( /// Create a module identity. /// /// The module identity to create or update. - /// The condition on which to perform this operation. In case of update, if no ETag is present on the device, then the condition must be equal to . + /// The condition on which to perform this operation. + /// In case of create, the condition must be equal to . + /// In case of update, if no ETag is present on the device, then the condition must be equal to . + /// /// The cancellation token. /// The created module identity and the http response . public virtual Response CreateOrUpdateIdentity( From ed771f0b03940b92154b763525546fda2252910f Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Mon, 29 Jun 2020 11:57:45 -0700 Subject: [PATCH 11/11] Update DevicesClient.cs --- sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 0f772247d7fcc..3e14df9a6618d 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -122,7 +122,7 @@ public virtual Task DeleteIdentityAsync( /// /// Delete a single device identity. /// - /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to or equal to . + /// the device identity to delete. If no ETag is present on the device, then the condition must be equal to . /// The condition on which to delete the device. /// The cancellation token. /// The http response .