From f9cc8c8167b74f4c0c677872c07e81a9d271254d Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Wed, 24 Jun 2020 14:48:19 -0700 Subject: [PATCH 01/12] Initial commit --- .../src/IoTHubServiceClient.cs | 4 +- .../tests/DevicesClientTests.cs | 130 ++++++++++++++---- 2 files changed, 102 insertions(+), 32 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs index 2ca72c0747714..3078a29a6fc4e 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs @@ -95,7 +95,7 @@ public IoTHubServiceClient(string connectionString, IoTHubServiceClientOptions o _httpPipeline = HttpPipelineBuilder.Build(options); _registryManagerRestClient = new RegistryManagerRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); - _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, null, options.GetVersionString()); + _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); _deviceMethodRestClient = new DeviceMethodRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); Devices = new DevicesClient(_registryManagerRestClient, _twinRestClient, _deviceMethodRestClient); @@ -144,7 +144,7 @@ public IoTHubServiceClient(Uri endpoint, TokenCredential credential, IoTHubServi _httpPipeline = HttpPipelineBuilder.Build(options); _registryManagerRestClient = new RegistryManagerRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); - _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, null, options.GetVersionString()); + _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); _deviceMethodRestClient = new DeviceMethodRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); Devices = new DevicesClient(_registryManagerRestClient, _twinRestClient, _deviceMethodRestClient); diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 90a364d94c94f..e0a85e983d049 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -2,7 +2,8 @@ // Licensed under the MIT License. using System; -using System.Net; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Azure.Iot.Hub.Service.Models; using FluentAssertions; @@ -17,51 +18,120 @@ public DevicesClientTests(bool isAsync) { } + /// + /// Test basic lifecycle of a Device Identity. + /// This test includes CRUD operations only. + /// [Test] - public async Task Devices_Lifecycle() + public async Task Devices_IdentityLifecycle() { - // TODO: This is just a verification that tests run and it requires the tester to complete this test however they see fit. - string testDeviceName = $"testDevice{GetRandom()}"; + string testDeviceName = $"IdentityLifecycleDevice{GetRandom()}"; DeviceIdentity device = null; IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - try - { - device = (await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false)).Value; - } - catch (RequestFailedException ex) when (ex.Status == (int)HttpStatusCode.NotFound) - { - // If the Device doesn't exist, we will create it. - device = (await client.Devices.CreateOrUpdateIdentityAsync( - new Models.DeviceIdentity - { - DeviceId = testDeviceName - }).ConfigureAwait(false)).Value; - } + // CREATE A DEVICE + Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new Models.DeviceIdentity + { + DeviceId = testDeviceName + }).ConfigureAwait(false); + + device = createResponse.Value; + + // GET DEVICE + // Get the device and compare ETag values (should remain unchanged); + Response getResponse = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); + + getResponse.Value.Etag.Should().BeEquivalentTo(device.Etag, "ETag value should not have changed."); + + device = getResponse.Value; + + // UPDATE DEVICE + device.Status = DeviceStatus.Disabled; + + // TODO: (azabbasi) We should leave the IfMatchPrecondition to be the default value once we know more about the fix. + Response updateResponse = await client.Devices.CreateOrUpdateIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); - // Perform another GET. We expect the device to exist. - Response response = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); - device = response.Value; - response.GetRawResponse().Status.Should().Be(200); + updateResponse.Value.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); + + // DELETE DEVICE + // Deleting the device happens in the finally block as cleanup. } finally { - // cleanup - try - { - if (device != null) + await Cleanup(client, device); + } + } + + /// + /// Test basic operations of a Device Twin. + /// + [Test] + public async Task Devices_TwinLifecycle() + { + string testDeviceName = $"TwinLifecycleDevice{GetRandom()}"; + + DeviceIdentity device = null; + + IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // CREATE A DEVICE + // Creating a device also creates a twin for the device. + Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new Models.DeviceIdentity { - await client.Devices.DeleteIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); - } - } - catch (Exception ex) + DeviceId = testDeviceName + }).ConfigureAwait(false); + + device = createResponse.Value; + + // GET DEVICE TWIN + Response getResponse = await client.Devices.GetTwinAsync(testDeviceName).ConfigureAwait(false); + TwinData deviceTwin = getResponse.Value; + + deviceTwin.DeviceId.Should().BeEquivalentTo(testDeviceName, "DeviceId on the Twin should match that of the device."); + + // UPDATE DEVICE TWIN + string propName = "username"; + string propValue = "userA"; + deviceTwin.Properties.Desired.Add(new KeyValuePair(propName, propValue)); + + // TODO: (azabbasi) We should leave the IfMatchPrecondition to be the default value once we know more about the fix. + Response updateResponse = await client.Devices.UpdateTwinAsync(deviceTwin, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); + + updateResponse.Value.Properties.Desired.Where(p => p.Key == propName).First().Value.Should().Be(propValue, "Desired property value is incorrect."); + + // DELETE DEVICE + // Deleting the device happens in the finally block as cleanup. + } + finally + { + await Cleanup(client, device); + } + } + + private async Task Cleanup(IoTHubServiceClient client, DeviceIdentity device) + { + // cleanup + try + { + if (device != null) { - Assert.Fail($"Test clean up failed: {ex.Message}"); + await client.Devices.DeleteIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); } } + catch (Exception ex) + { + Assert.Fail($"Test clean up failed: {ex.Message}"); + } } } } From 5ef4f8b6e92f6b7f682ed0d0b7d01eac67a78b6d Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Wed, 24 Jun 2020 17:02:16 -0700 Subject: [PATCH 02/12] Record tests --- .../tests/DevicesClientTests.cs | 81 +++++ .../Devices_BulkCreation.json | 278 ++++++++++++++++++ .../Devices_BulkCreationAsync.json | 278 ++++++++++++++++++ .../Devices_IdentityLifecycle.json | 210 +++++++++++++ .../Devices_IdentityLifecycleAsync.json | 210 +++++++++++++ .../Devices_TwinLifecycle.json | 237 +++++++++++++++ .../Devices_TwinLifecycleAsync.json | 237 +++++++++++++++ 7 files changed, 1531 insertions(+) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index e0a85e983d049..c055e8a9d7a5f 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -118,6 +118,87 @@ public async Task Devices_TwinLifecycle() } } + /// + /// Test bulk Device creation. + /// In this test we create 10 brand new devices and expect them all to be created with no issues. + /// + [Test] + public async Task Devices_BulkCreation() + { + string testDeviceprefix = $"bulkDevice"; + + IEnumerable devices = CreateMultipleDevices(testDeviceprefix, 10); + + IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // CREATE ALL DEVICES + Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devices); + } + } + + /// + /// Test bulk Device creation. + /// 9 out of 10 devices are going to be brand new. One device alreadyExists. + /// + [Test] + [Ignore("DeviceRegistryOperationError cannot be parsed since service sends integer instead of a string")] + public async Task Devices_BulkCreation_OneAlreadyExists() + { + string testDeviceprefix = $"bulkDevice"; + string existingDeviceName = $"{testDeviceprefix}{GetRandom()}"; + + IoTHubServiceClient client = GetClient(); + // We first create a single device. + IList devices = CreateMultipleDevices(testDeviceprefix, 9); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + var response = await client.Devices.CreateOrUpdateIdentityAsync(new DeviceIdentity { DeviceId = existingDeviceName }); + + // Add the existing device to the list of devices to be bulk created. + devices.Add(response.Value); + + // CREATE ALL DEVICES + Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devices); + } + } + + private IList CreateMultipleDevices(string testDeviceprefix, int deviceCount) + { + List deviceList = new List(); + + for (int i = 0; i < deviceCount; i++) + { + deviceList.Add(new DeviceIdentity { DeviceId = $"{testDeviceprefix}{GetRandom()}" }); + } + + return deviceList; + } + + private async Task Cleanup(IoTHubServiceClient client, IEnumerable devices) + { + foreach (var device in devices) + { + await Cleanup(client, device); + } + } + private async Task Cleanup(IoTHubServiceClient client, DeviceIdentity device) { // cleanup diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json new file mode 100644 index 0000000000000..a9c729b9f255d --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "710", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8e8f49d4721190e9bcc400527a20eb17", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1798984736\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1616718940\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1065422429\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2041843540\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1535195514\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1242360030\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1938337894\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1428671928\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice256394861\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1372277789\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "35f9852d-b9c8-4e14-8e97-fb659d423394" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1798984736?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "0c806fe43acb1e8512e6d524270224fa", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f149352f-383a-44a8-a606-1e85497fbde2" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1616718940?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "7b38254991e9ab7b04f16b2448cee23d", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "8b933a54-28bf-4987-963b-22243cfc0a21" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1065422429?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f7f9626960379a52c3707c2a9cc468ba", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9e104a11-6e46-49fb-a51f-c2ce2e2d82a0" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2041843540?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5408069f70e8532ef3d507d9ce61d643", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c9d93966-b0f3-4fa1-a87c-e28798c0ea2b" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1535195514?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c5bb98042c08e9c2d39db77815500e3f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9b88bd6a-5c09-4f14-a7b5-78ddce4b42d3" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1242360030?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4184b1888dc5f95434a603625878cc62", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "20a41683-f474-4b7f-855a-60403cb48164" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1938337894?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "04263899a30973b2431f814ab8b53ea2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f89dbfac-d585-4a1f-ac30-64c6d34b65a9" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1428671928?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "1d51c7c794dd767e43c290622860905a", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "3d03a9ac-0a05-4c0f-b9f0-2ffc55769ffe" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice256394861?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "dcdf55d1092ae536ff11fea50c09407e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6e3ab10c-8044-4a2a-b6d7-4806f01c0637" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1372277789?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "919a6168ae270484baafc147124f4ae2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1afd7df4-b04b-470b-b6c4-02e65bac7d03" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2112638789" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json new file mode 100644 index 0000000000000..9260d3fa11b7f --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "708", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f433bd356157a36988a95da1517f36a2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice998842311\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1584729345\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2096480809\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1263270320\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1255465691\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice226997166\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1851598639\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice304169616\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1765744542\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1552665253\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "5d0ae470-ba00-4665-83e2-051f87c67007" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice998842311?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "fc65f2b361975233a4f9dacf64e3522c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "10767151-9909-4add-bb0b-25ca9a447b80" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1584729345?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8eb4537045a93af26ca352850825b0aa", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "222dcff2-9f65-40a0-835c-9de12900ce30" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2096480809?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3dfa3979a22ad40e8ae04f5e87993ea5", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "dad3f0f1-e5c8-4ca5-b2cf-edb0ca4e72cb" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1263270320?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "fd303157a7ca6ef8ff2b90f30ead497e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "e9340746-b7b4-4958-b88b-f078df5a81f4" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1255465691?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2b562f4815e9ce0244e004c8f593b2d3", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "35169ad9-7b05-45d9-8636-4db4a1a646a2" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice226997166?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d72ead64b3f5d1e0408b3dfe111bc5dc", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "4b3eb7df-4bbc-4634-bbb3-cfabb8ceed8c" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1851598639?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5715d096134342bc2e61b8eaa330796b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d6017c92-aa2e-4a8e-b80b-8037612dc811" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice304169616?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "618ebd79717f95894f84ea5dd703bc29", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "b12ac859-d478-4a2d-a4a5-79fcd8fc5936" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1765744542?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2432281a5a7e5190f1eca993faf52e10", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "adc38151-68f8-485a-aea7-4165e2148ffa" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1552665253?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5485d112648c245d478008be285f6a2b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "03258119-1aff-4282-b7c1-09e13b45e0bc" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1122923319" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json new file mode 100644 index 0000000000000..22aac8c745989 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "47", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "353676c2bf306c4344a5ed1868085bf7", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice366387633" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "616", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d5f51788-a909-40fe-bc97-a51d599329d9" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "bbf4d14508f2e11c432ecb0216e2e994", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "619", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "666634bd-7c66-4e25-91c4-cdd677491dcc" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "573", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "86c4e09d83e11f2c99945dd7664c45ba", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ1", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022Mjg5NDc3NDQ2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a96d0c4a-1f2e-4847-87fe-cd06a097d025" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ2", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T00:01:20.2036247Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d3264503d003babe5954f101f3415661", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9b5083f8-5f24-42fe-a146-dd1644b90114" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1043933844" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json new file mode 100644 index 0000000000000..071f590de12c7 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "48", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8416cad6f82389f8c0ea714d5c3787cf", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice1735298060" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "617", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a8d00cb8-53b6-4bf9-a31a-b7a1069db640" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4b23ea189b9f6ed44e7181aa040503db", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "620", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "09c8dc4f-0384-4c66-ba47-a1b73efc4d83" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "574", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3dbd90ffc32446823f2a0ea6825fe857", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk1", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "629", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022MzA1ODIwNTk2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c8957737-64ee-4b91-8f5e-b39dc38c7676" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk2", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T00:01:20.0731498Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4c4c798cbc313a6df5a735b1764d85bb", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9f5fe2c2-1565-429d-bc12-c34248eb1413" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1204752578" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json new file mode 100644 index 0000000000000..171322557b9ec --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "43", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "41fe598c33bb1a5a76adbe759995195f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice733357959" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "612", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022OTg3NjcxNzUz\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c5384c54-bf3a-47af-9ee1-f0c86adf2620" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice733357959", + "generationId": "637286400803292455", + "etag": "OTg3NjcxNzUz", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "M7RPBF\u002Bqgu123EjTFeh19cH88gJeX/fJBGggGDflASI=", + "secondaryKey": "cJysO4Q1HNHFm0b2vEz1dAUI6vp2/hEe1RQEU5rzy7c=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "cde3fabc3d0b4d66685e7d34128d8cc9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "588", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c6452cfc-7250-46dc-90dd-3c899b0b04db" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice733357959", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "OTg3NjcxNzUz", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "572", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d6c5f0d9acbf2a7d7d6fbf4abe14a313", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice733357959", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "OTg3NjcxNzUz", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "714", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6147beec-aa92-469a-acd5-591d545b26c2" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice733357959", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "OTg3NjcxNzUz", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "fac5c131404e4e7bf3b0d85db62608e9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "4d9f76fe-cf1e-43ac-8b15-787ecb36f78c" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "254673204" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json new file mode 100644 index 0000000000000..80b5312e08b1a --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "43", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "193795b30f7fcba90d0253fbb706745e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice646618704" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "612", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "ETag": "\u0022NDQ5MDI4MTA4\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6f5b7ed3-cba6-47b4-9417-6b0f41c7e803" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice646618704", + "generationId": "637286400801730300", + "etag": "NDQ5MDI4MTA4", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "TiSH6o4dCIvDNNAWxjn8Ehg70FFtsYFFRno6bY6UEFM=", + "secondaryKey": "Pf/8hqk1mqh/lMR8inQLpZAGzxdmS9ZCQTykX0UkNIA=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5428891cd5c1bce8e94087a49be23893", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "584", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "5af01a92-11c1-4a1e-b144-cad257170084" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice646618704", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NDQ5MDI4MTA4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "568", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "17a23195a39ce5a3e5feddb4354d8bf4", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice646618704", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NDQ5MDI4MTA4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "712", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d753cd9b-2939-47f6-aef8-b9345a3f73f1" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice646618704", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NDQ5MDI4MTA4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d8c878c00ec7dd8fac7b303f88042f2b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c20d6626-6765-40be-9554-7c2ce3375d92" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "46384281" + } +} \ No newline at end of file From e7d00018a3d8ed366798b057c6583391b8386da4 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Thu, 25 Jun 2020 09:52:14 -0700 Subject: [PATCH 03/12] Add more tests --- .../Azure.Iot.Hub.Service.netstandard2.0.cs | 4 +- .../src/DevicesClient.cs | 4 +- .../tests/DevicesClientTests.cs | 142 ++++++++-- .../Devices_BulkCreation.json | 248 ++---------------- .../Devices_BulkCreationAsync.json | 248 ++---------------- .../Devices_BulkCreation_DeviceAndTwin.json | 68 +++++ ...vices_BulkCreation_DeviceAndTwinAsync.json | 68 +++++ .../Devices_BulkCreation_DeviceWithTwin.json | 68 +++++ ...ices_BulkCreation_DeviceWithTwinAsync.json | 68 +++++ .../Devices_IdentityLifecycle.json | 66 ++--- .../Devices_IdentityLifecycleAsync.json | 64 ++--- .../Devices_Query_GetTwins.json | 184 +++++++++++++ .../Devices_Query_GetTwinsAsync.json | 213 +++++++++++++++ .../Devices_TwinLifecycle.json | 54 ++-- .../Devices_TwinLifecycleAsync.json | 60 ++--- 15 files changed, 956 insertions(+), 603 deletions(-) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.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 91aaec80d0d33..8ebcc1cbdca28 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 @@ -30,8 +30,8 @@ protected DevicesClient() { } public virtual Azure.AsyncPageable GetTwinsAsync(int? pageSize = default(int?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response InvokeMethod(string deviceId, Azure.Iot.Hub.Service.Models.CloudToDeviceMethodRequest directMethodRequest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> InvokeMethodAsync(string deviceId, Azure.Iot.Hub.Service.Models.CloudToDeviceMethodRequest directMethodRequest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response UpdateIdenties(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> UpdateIdentiesAsync(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response UpdateIdentities(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateIdentitiesAsync(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response UpdateTwin(Azure.Iot.Hub.Service.Models.TwinData twinUpdate, Azure.Iot.Hub.Service.IfMatchPrecondition precondition = Azure.Iot.Hub.Service.IfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> UpdateTwinAsync(Azure.Iot.Hub.Service.Models.TwinData twinUpdate, Azure.Iot.Hub.Service.IfMatchPrecondition precondition = Azure.Iot.Hub.Service.IfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response UpdateTwins(System.Collections.Generic.IEnumerable twinUpdates, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 444e44c0d4142..0e2b8fd1d3d20 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -247,7 +247,7 @@ public virtual Response CreateIdentities(IEnumera /// The condition on which to update each device identity. /// The cancellation token. /// The result of the bulk operation and the http response . - public virtual Task> UpdateIdentiesAsync( + public virtual Task> UpdateIdentitiesAsync( IEnumerable deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default) @@ -278,7 +278,7 @@ public virtual Task> UpdateIdentiesAsync /// The condition on which to update each device identity. /// The cancellation token. /// The result of the bulk operation and the http response . - public virtual Response UpdateIdenties( + public virtual Response UpdateIdentities( IEnumerable deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index c055e8a9d7a5f..743716b4084e8 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -13,6 +13,9 @@ namespace Azure.Iot.Hub.Service.Tests { public class DevicesClientTests : E2eTestBase { + private const int BULK_DEVICE_COUNT = 10; + private TimeSpan QUERY_RETRY_LIMIT = TimeSpan.FromSeconds(10); + public DevicesClientTests(bool isAsync) : base(isAsync) { @@ -34,7 +37,7 @@ public async Task Devices_IdentityLifecycle() // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - // CREATE A DEVICE + // Create a device Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( new Models.DeviceIdentity { @@ -43,7 +46,7 @@ public async Task Devices_IdentityLifecycle() device = createResponse.Value; - // GET DEVICE + // Get device // Get the device and compare ETag values (should remain unchanged); Response getResponse = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); @@ -51,7 +54,7 @@ public async Task Devices_IdentityLifecycle() device = getResponse.Value; - // UPDATE DEVICE + // Update a device device.Status = DeviceStatus.Disabled; // TODO: (azabbasi) We should leave the IfMatchPrecondition to be the default value once we know more about the fix. @@ -59,7 +62,7 @@ public async Task Devices_IdentityLifecycle() updateResponse.Value.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); - // DELETE DEVICE + // Delete the device // Deleting the device happens in the finally block as cleanup. } finally @@ -83,7 +86,7 @@ public async Task Devices_TwinLifecycle() // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - // CREATE A DEVICE + // Create a device // Creating a device also creates a twin for the device. Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( new Models.DeviceIdentity @@ -93,13 +96,13 @@ public async Task Devices_TwinLifecycle() device = createResponse.Value; - // GET DEVICE TWIN + // Get the device twin Response getResponse = await client.Devices.GetTwinAsync(testDeviceName).ConfigureAwait(false); TwinData deviceTwin = getResponse.Value; deviceTwin.DeviceId.Should().BeEquivalentTo(testDeviceName, "DeviceId on the Twin should match that of the device."); - // UPDATE DEVICE TWIN + // Update device twin string propName = "username"; string propValue = "userA"; deviceTwin.Properties.Desired.Add(new KeyValuePair(propName, propValue)); @@ -109,7 +112,7 @@ public async Task Devices_TwinLifecycle() updateResponse.Value.Properties.Desired.Where(p => p.Key == propName).First().Value.Should().Be(propValue, "Desired property value is incorrect."); - // DELETE DEVICE + // Delete the device // Deleting the device happens in the finally block as cleanup. } finally @@ -120,21 +123,21 @@ public async Task Devices_TwinLifecycle() /// /// Test bulk Device creation. - /// In this test we create 10 brand new devices and expect them all to be created with no issues. + /// In this test we create multiple brand new devices and expect them all to be created with no issues. /// [Test] public async Task Devices_BulkCreation() { string testDeviceprefix = $"bulkDevice"; - IEnumerable devices = CreateMultipleDevices(testDeviceprefix, 10); + IEnumerable devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT); IoTHubServiceClient client = GetClient(); // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - // CREATE ALL DEVICES + // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); @@ -147,7 +150,7 @@ public async Task Devices_BulkCreation() /// /// Test bulk Device creation. - /// 9 out of 10 devices are going to be brand new. One device alreadyExists. + /// All but one devices are going to be brand new. One device alreadyExists. /// [Test] [Ignore("DeviceRegistryOperationError cannot be parsed since service sends integer instead of a string")] @@ -157,21 +160,102 @@ public async Task Devices_BulkCreation_OneAlreadyExists() string existingDeviceName = $"{testDeviceprefix}{GetRandom()}"; IoTHubServiceClient client = GetClient(); - // We first create a single device. - IList devices = CreateMultipleDevices(testDeviceprefix, 9); + IList devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT-1); // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - var response = await client.Devices.CreateOrUpdateIdentityAsync(new DeviceIdentity { DeviceId = existingDeviceName }); + // We first create a single device. + Response response = await client.Devices.CreateOrUpdateIdentityAsync(new DeviceIdentity { DeviceId = existingDeviceName }); // Add the existing device to the list of devices to be bulk created. devices.Add(response.Value); - // CREATE ALL DEVICES + // Create all devices + Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devices); + } + } + + /// + /// Test bulk device and twin creation. + /// + [Test] + public async Task Devices_BulkCreation_DeviceWithTwin() + { + string testDeviceprefix = $"bulkDeviceWithTwin"; + + IoTHubServiceClient client = GetClient(); + + IDictionary desiredProperties = new Dictionary + { + { "user", "userA" } + }; + + // We will build multiple devices and all of them with the same desired properties for convenience. + IDictionary devicesAndTwins = BuildDevicesAndTwins(testDeviceprefix, BULK_DEVICE_COUNT, desiredProperties); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // Create all devices with twins + Response createResponse = await client.Devices.CreateIdentitiesWithTwinAsync(devicesAndTwins).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devicesAndTwins.Keys); + } + } + + /// + /// Test query by getting all twins. + /// + [Test] + public async Task Devices_Query_GetTwins() + { + string testDeviceprefix = $"bulkDevice"; + + IEnumerable devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT); + + IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + + // We will retry the operation since it can take some time for the query to match what was recently created. + int matchesFound = 0; + DateTimeOffset startTime = DateTime.UtcNow; + + while ( + matchesFound != BULK_DEVICE_COUNT + && DateTime.UtcNow - startTime < QUERY_RETRY_LIMIT) + { + matchesFound = 0; + AsyncPageable twins = client.Devices.GetTwinsAsync(); + + // We will verify we have twins for all recently created devices. + await foreach (TwinData twin in twins) + { + if (devices.Any(d => d.DeviceId.Equals(twin.DeviceId, StringComparison.OrdinalIgnoreCase))) + { + matchesFound++; + } + } + } + + matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to count of recently created devices."); } finally { @@ -179,7 +263,20 @@ public async Task Devices_BulkCreation_OneAlreadyExists() } } - private IList CreateMultipleDevices(string testDeviceprefix, int deviceCount) + private IDictionary BuildDevicesAndTwins(string testDeviceprefix, int deviceCount, IDictionary desiredProperties) + { + IList devices = BuildMultipleDevices(testDeviceprefix, deviceCount); + IDictionary devicesAndTwins = new Dictionary(); + + foreach (DeviceIdentity device in devices) + { + devicesAndTwins.Add(device, new TwinData { Properties = new TwinProperties { Desired = desiredProperties } }); + } + + return devicesAndTwins; + } + + private IList BuildMultipleDevices(string testDeviceprefix, int deviceCount) { List deviceList = new List(); @@ -193,9 +290,16 @@ private IList CreateMultipleDevices(string testDeviceprefix, int private async Task Cleanup(IoTHubServiceClient client, IEnumerable devices) { - foreach (var device in devices) + try { - await Cleanup(client, device); + if (devices.Any()) + { + await client.Devices.DeleteIdentitiesAsync(devices, BulkIfMatchPrecondition.Unconditional); + } + } + catch (Exception ex) + { + Assert.Fail($"Test clean up failed: {ex.Message}"); } } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json index a9c729b9f255d..d51cfa1f5aab8 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json @@ -8,7 +8,7 @@ "Content-Length": "710", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8e8f49d4721190e9bcc400527a20eb17", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "35f9852d-b9c8-4e14-8e97-fb659d423394" + "x-ms-request-id": "8ed7d941-87ee-4429-b075-2dfcebcbfed7" }, "ResponseBody": { "isSuccessful": true, @@ -31,244 +31,34 @@ } }, { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1798984736?api-version=2020-03-13", - "RequestMethod": "DELETE", + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "If-Match": "*", + "Content-Length": "520", + "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "0c806fe43acb1e8512e6d524270224fa", "x-ms-return-client-request-id": "true" }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "f149352f-383a-44a8-a606-1e85497fbde2" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1616718940?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "7b38254991e9ab7b04f16b2448cee23d", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "8b933a54-28bf-4987-963b-22243cfc0a21" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1065422429?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "f7f9626960379a52c3707c2a9cc468ba", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "9e104a11-6e46-49fb-a51f-c2ce2e2d82a0" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2041843540?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "5408069f70e8532ef3d507d9ce61d643", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "c9d93966-b0f3-4fa1-a87c-e28798c0ea2b" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1535195514?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "c5bb98042c08e9c2d39db77815500e3f", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "9b88bd6a-5c09-4f14-a7b5-78ddce4b42d3" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1242360030?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "4184b1888dc5f95434a603625878cc62", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "20a41683-f474-4b7f-855a-60403cb48164" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1938337894?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "04263899a30973b2431f814ab8b53ea2", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "f89dbfac-d585-4a1f-ac30-64c6d34b65a9" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1428671928?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "1d51c7c794dd767e43c290622860905a", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "3d03a9ac-0a05-4c0f-b9f0-2ffc55769ffe" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice256394861?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "dcdf55d1092ae536ff11fea50c09407e", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "6e3ab10c-8044-4a2a-b6d7-4806f01c0637" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1372277789?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "919a6168ae270484baafc147124f4ae2", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1798984736\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1616718940\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1065422429\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2041843540\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1535195514\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1242360030\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1938337894\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1428671928\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice256394861\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1372277789\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1afd7df4-b04b-470b-b6c4-02e65bac7d03" + "x-ms-request-id": "fcc4b83b-df74-4055-bddb-8cb75303d2c3" }, - "ResponseBody": [] + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } } ], "Variables": { diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json index 9260d3fa11b7f..ffea706af99f1 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json @@ -8,7 +8,7 @@ "Content-Length": "708", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "f433bd356157a36988a95da1517f36a2", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "5d0ae470-ba00-4665-83e2-051f87c67007" + "x-ms-request-id": "9c3864c5-4c3c-48f3-aa6a-c41e91d170e1" }, "ResponseBody": { "isSuccessful": true, @@ -31,244 +31,34 @@ } }, { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice998842311?api-version=2020-03-13", - "RequestMethod": "DELETE", + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "If-Match": "*", + "Content-Length": "518", + "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "fc65f2b361975233a4f9dacf64e3522c", "x-ms-return-client-request-id": "true" }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "10767151-9909-4add-bb0b-25ca9a447b80" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1584729345?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "8eb4537045a93af26ca352850825b0aa", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "222dcff2-9f65-40a0-835c-9de12900ce30" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2096480809?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "3dfa3979a22ad40e8ae04f5e87993ea5", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "dad3f0f1-e5c8-4ca5-b2cf-edb0ca4e72cb" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1263270320?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "fd303157a7ca6ef8ff2b90f30ead497e", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "e9340746-b7b4-4958-b88b-f078df5a81f4" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1255465691?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "2b562f4815e9ce0244e004c8f593b2d3", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "35169ad9-7b05-45d9-8636-4db4a1a646a2" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice226997166?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "d72ead64b3f5d1e0408b3dfe111bc5dc", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "4b3eb7df-4bbc-4634-bbb3-cfabb8ceed8c" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1851598639?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "5715d096134342bc2e61b8eaa330796b", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "d6017c92-aa2e-4a8e-b80b-8037612dc811" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice304169616?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "618ebd79717f95894f84ea5dd703bc29", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "b12ac859-d478-4a2d-a4a5-79fcd8fc5936" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1765744542?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "2432281a5a7e5190f1eca993faf52e10", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "adc38151-68f8-485a-aea7-4165e2148ffa" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1552665253?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "5485d112648c245d478008be285f6a2b", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice998842311\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1584729345\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2096480809\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1263270320\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1255465691\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice226997166\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1851598639\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice304169616\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1765744542\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1552665253\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "03258119-1aff-4282-b7c1-09e13b45e0bc" + "x-ms-request-id": "9c3b7f78-43e5-4866-a00b-51704bc2959c" }, - "ResponseBody": [] + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } } ], "Variables": { diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json new file mode 100644 index 0000000000000..0d63fec62ade0 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1127", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "a0a8767aad36092c89a4efd90d4b6054", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1737903722\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice138812567\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1528604451\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1636663748\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice190630551\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2098130976\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice107211793\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1670511691\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1852498269\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice620488212\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "e721e419-60e4-4594-bb60-744f69f1cdcd" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "517", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4b0010482405ee3f03a52e11957f1609", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1737903722\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice138812567\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1528604451\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1636663748\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice190630551\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2098130976\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice107211793\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1670511691\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1852498269\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice620488212\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1eac69f8-e378-4ae0-8160-afb11e3a591e" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1510665433" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json new file mode 100644 index 0000000000000..7c3107e21dde7 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1128", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "829ca71f75dbb3a0a03d48d071930fbe", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1338090783\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice389291320\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1598712121\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice578243171\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1703406721\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2116149212\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1693220262\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2126740217\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2052518605\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice960026760\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d8497bc2-48c4-45bc-9b56-5ecfc3f0255c" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "518", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "e345b75e3bf95fa94ab0f0b32448b8a8", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1338090783\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice389291320\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1598712121\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice578243171\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1703406721\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2116149212\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1693220262\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2126740217\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2052518605\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice960026760\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "fb4a3f9d-a719-4376-b591-daa5ba42c260" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "227790136" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json new file mode 100644 index 0000000000000..fa19048e9954a --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1208", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "875ed205039de7b451ff62595a608e6e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1915046491\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1548345080\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1368015331\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin724082543\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1651475638\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1192587400\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin238949849\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090864498\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090973664\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin816809052\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "ce4f2a2f-994f-4ddb-9991-2d130de84105" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "598", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "649555755edfd82482020215dac923fe", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1915046491\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1548345080\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1368015331\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin724082543\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1651475638\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1192587400\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin238949849\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090864498\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090973664\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin816809052\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "4f79d680-6fb2-4305-b6fa-f84ff91e7a74" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1723376107" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json new file mode 100644 index 0000000000000..0950a5e7c2511 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1203", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "262b663141f7dc795fcdd48033cbe9eb", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin2016627213\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin28574869\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1125850256\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1590234287\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1972326100\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin156242462\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin222240310\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin10491333\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1157928477\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "040c784c-e775-43d0-aee6-a699830a02c4" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "593", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "68c58e1044dd5d5b354b9a37d58e2e14", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin2016627213\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin28574869\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1125850256\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1590234287\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1972326100\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin156242462\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin222240310\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin10491333\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1157928477\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1cd2e2c2-2b8f-4a4e-bf3e-848551398996" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "194539023" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json index 22aac8c745989..39b953639fc3d 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json @@ -8,7 +8,7 @@ "Content-Length": "47", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "353676c2bf306c4344a5ed1868085bf7", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "616", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022Mzg4MzQxMDY5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d5f51788-a909-40fe-bc97-a51d599329d9" + "x-ms-request-id": "a940129e-84d5-495f-b564-0daeea464d15" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ1", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDY5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "bbf4d14508f2e11c432ecb0216e2e994", @@ -71,16 +71,16 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022Mzg4MzQxMDY5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "666634bd-7c66-4e25-91c4-cdd677491dcc" + "x-ms-request-id": "4d6a3784-b655-4ea2-b2c2-6635ee552a9d" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ1", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDY5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -90,8 +90,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -109,11 +109,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.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "86c4e09d83e11f2c99945dd7664c45ba", @@ -121,8 +121,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ1", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDY5", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -131,8 +131,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": {}, "type": "sas" @@ -145,27 +145,27 @@ "ResponseHeaders": { "Content-Length": "628", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022Mjg5NDc3NDQ2\u0022", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "ETag": "\u0022Mzg4MzQxMDcw\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a96d0c4a-1f2e-4847-87fe-cd06a097d025" + "x-ms-request-id": "65f78294-018a-49f6-b90f-ae217b49866f" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ2", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDcw", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T00:01:20.2036247Z", + "statusUpdatedTime": "2020-06-25T16:48:48.8745725Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -185,7 +185,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d3264503d003babe5954f101f3415661", @@ -195,10 +195,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "9b5083f8-5f24-42fe-a146-dd1644b90114" + "x-ms-request-id": "d34c315c-2c2c-46f2-b06f-455387281288" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json index 071f590de12c7..df056f7772fe6 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json @@ -8,7 +8,7 @@ "Content-Length": "48", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8416cad6f82389f8c0ea714d5c3787cf", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "617", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022NzY3NjQxOTE5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a8d00cb8-53b6-4bf9-a31a-b7a1069db640" + "x-ms-request-id": "ce7150c7-4f5b-4b86-a465-4b76af9bdc16" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk1", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTE5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4b23ea189b9f6ed44e7181aa040503db", @@ -71,16 +71,16 @@ "ResponseHeaders": { "Content-Length": "620", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022NzY3NjQxOTE5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "09c8dc4f-0384-4c66-ba47-a1b73efc4d83" + "x-ms-request-id": "2a4a632b-7d75-471a-9391-c72e185c39c5" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk1", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTE5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -90,8 +90,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -113,7 +113,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "3dbd90ffc32446823f2a0ea6825fe857", @@ -121,8 +121,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk1", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTE5", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -131,8 +131,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": {}, "type": "sas" @@ -145,27 +145,27 @@ "ResponseHeaders": { "Content-Length": "629", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022MzA1ODIwNTk2\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022NzY3NjQxOTIw\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c8957737-64ee-4b91-8f5e-b39dc38c7676" + "x-ms-request-id": "8f6b995b-4281-47b8-9822-0f8ef640e6b4" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk2", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTIw", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T00:01:20.0731498Z", + "statusUpdatedTime": "2020-06-25T16:48:48.8538466Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -185,7 +185,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4c4c798cbc313a6df5a735b1764d85bb", @@ -195,10 +195,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "9f5fe2c2-1565-429d-bc12-c34248eb1413" + "x-ms-request-id": "19ee4ec1-3f9c-4521-a93c-dbb749baad9c" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json new file mode 100644 index 0000000000000..3e5e6d9240c24 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json @@ -0,0 +1,184 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "706", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "60a42da6ce2f020439309ae22c135974", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1611949012\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice968761103\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1147610648\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice647774619\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1861405137\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice795411845\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1391594436\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice864736061\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1564126165\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice376399344\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d3213fab-c133-4d20-a29f-2254f18fe8fe" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "984cca8b279c0e88283ad7429bfef3c3", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "1275", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "866b20c2-82f6-4a68-9f08-7d54cc42476f" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTEwODUxNzQ4\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-25T16:48:48.5635223Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3c27be0170f54cb6b2e09e3124f2e305", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "2329", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "0fb2171d-ed36-407c-9e8e-39d320014b34" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "faf95d423df17f53a49637f5f7c2673b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "7554", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "1fb8f043-2db9-4ef1-9abf-f29b27e98b7f" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "6ee0d63d1ceb1a7e13ffe5bc8857e935", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "9881", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "d625264a-9a6b-4e6a-be6d-b27667fdecb7" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice313004596\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1747464824\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1391594436\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjIyNzY5MTI4\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-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1611949012\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "516", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3e00d156f804c4d26aa8985f38c155f0", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1611949012\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice968761103\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1147610648\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice647774619\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1861405137\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice795411845\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1391594436\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice864736061\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1564126165\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice376399344\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "7a0ca9b9-7020-4392-9d52-23ef49098b41" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1817368407" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.json new file mode 100644 index 0000000000000..e39fe75246dd4 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.json @@ -0,0 +1,213 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "707", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b9836a3efb2a51af60743d51f6363ee6", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1232289385\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1057393154\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1646301749\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1971129326\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice300040522\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1747464824\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice328522009\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice828070789\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2104688387\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice313004596\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "3add6ea3-9772-46ac-b449-d26235f3cf02" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "02fad690a9018ae76ef3e535b2e36ab9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "1275", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "e73bd2ed-fef6-4f38-8fa1-9d5b1f3602ad" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTEwODUxNzQ4\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-25T16:48:48.5635223Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5ff1a402ec26a549423f89de14180cff", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "2329", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "c42d048f-d3b0-46b6-ba28-0755f201d797" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "42e763b0018a953383f94b3616799f7c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "7558", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "c405ccca-35eb-4fdf-a83a-340c95266243" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "514e830ade45a4c08d55bfc11f087656", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "9300", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "f47febee-c54b-439f-ac9d-2244fdb9485b" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice313004596\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1391594436\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjIyNzY5MTI4\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-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1611949012\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4e85e6e628fb002f715bdb2ca1128fc8", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "11626", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "1b0eb5af-002f-413c-a183-a7a2f6cb98ce" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice313004596\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1747464824\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1391594436\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjIyNzY5MTI4\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-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1611949012\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice300040522\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1971129326\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328522009\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "517", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "90d40ca0bac9d1b9a343b4354171757b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1232289385\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1057393154\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1646301749\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1971129326\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice300040522\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1747464824\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice328522009\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice828070789\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2104688387\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice313004596\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "fa0a7ea2-6857-4632-90f3-50dc16208b25" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "35556485" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json index 171322557b9ec..0ec7455ac8d41 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json @@ -8,7 +8,7 @@ "Content-Length": "43", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "41fe598c33bb1a5a76adbe759995195f", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "612", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022OTg3NjcxNzUz\u0022", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", + "ETag": "\u0022NTczMjIwMjc=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c5384c54-bf3a-47af-9ee1-f0c86adf2620" + "x-ms-request-id": "f4eabd25-558d-472e-866d-9960118614ce" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice733357959", - "generationId": "637286400803292455", - "etag": "OTg3NjcxNzUz", + "generationId": "637287005299245791", + "etag": "NTczMjIwMjc=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "M7RPBF\u002Bqgu123EjTFeh19cH88gJeX/fJBGggGDflASI=", - "secondaryKey": "cJysO4Q1HNHFm0b2vEz1dAUI6vp2/hEe1RQEU5rzy7c=" + "primaryKey": "ayhPzYnlK260Y3YMD97d1dF/B/hFTTsUr02dDmmDL9Y=", + "secondaryKey": "GMpCFt\u002Bb9DG2dU/4ksxL0vI4cRqD2Abxv\u002BWkJ/8iMo8=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "cde3fabc3d0b4d66685e7d34128d8cc9", @@ -71,15 +71,15 @@ "ResponseHeaders": { "Content-Length": "588", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c6452cfc-7250-46dc-90dd-3c899b0b04db" + "x-ms-request-id": "bd9cddc7-b1d7-4cd5-b15c-4a222b70d8b1" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice733357959", "etag": "AAAAAAAAAAE=", - "deviceEtag": "OTg3NjcxNzUz", + "deviceEtag": "NTczMjIwMjc=", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -94,13 +94,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 } @@ -119,7 +119,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d6c5f0d9acbf2a7d7d6fbf4abe14a313", @@ -130,21 +130,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "OTg3NjcxNzUz", + "deviceEtag": "NTczMjIwMjc=", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -160,15 +160,15 @@ "ResponseHeaders": { "Content-Length": "714", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6147beec-aa92-469a-acd5-591d545b26c2" + "x-ms-request-id": "62d3a82d-2c3b-48cd-a5bf-6d75e4c8e4d0" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice733357959", "etag": "AAAAAAAAAAI=", - "deviceEtag": "OTg3NjcxNzUz", + "deviceEtag": "NTczMjIwMjc=", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -184,10 +184,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdated": "2020-06-25T16:48:49.9871097Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdated": "2020-06-25T16:48:49.9871097Z", "$lastUpdatedVersion": 2 } }, @@ -195,7 +195,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 } @@ -212,7 +212,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "fac5c131404e4e7bf3b0d85db62608e9", @@ -222,10 +222,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "4d9f76fe-cf1e-43ac-8b15-787ecb36f78c" + "x-ms-request-id": "c9d71b4d-62da-4233-bbe9-b79fcc94799c" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json index 80b5312e08b1a..4222389491944 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json @@ -8,7 +8,7 @@ "Content-Length": "43", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "193795b30f7fcba90d0253fbb706745e", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "612", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", - "ETag": "\u0022NDQ5MDI4MTA4\u0022", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", + "ETag": "\u0022MzY0MDgxMzg5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6f5b7ed3-cba6-47b4-9417-6b0f41c7e803" + "x-ms-request-id": "1f719b8f-f2a0-42c5-86e2-e371ab91f1ea" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice646618704", - "generationId": "637286400801730300", - "etag": "NDQ5MDI4MTA4", + "generationId": "637287005302683634", + "etag": "MzY0MDgxMzg5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "TiSH6o4dCIvDNNAWxjn8Ehg70FFtsYFFRno6bY6UEFM=", - "secondaryKey": "Pf/8hqk1mqh/lMR8inQLpZAGzxdmS9ZCQTykX0UkNIA=" + "primaryKey": "1AbDEkc5xz1u0qXO8lKrMII1Ya4IKbH\u002BbKWAsx6djAs=", + "secondaryKey": "IPNJTsWLCOpvyrKCpnwdXs6O8dqFFA1GPBnKfq46xQM=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "5428891cd5c1bce8e94087a49be23893", @@ -69,17 +69,17 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "584", + "Content-Length": "588", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "5af01a92-11c1-4a1e-b144-cad257170084" + "x-ms-request-id": "d5d9f078-6b23-4ebe-b53f-ccbdcca900b7" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice646618704", "etag": "AAAAAAAAAAE=", - "deviceEtag": "NDQ5MDI4MTA4", + "deviceEtag": "MzY0MDgxMzg5", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -94,13 +94,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 } @@ -115,11 +115,11 @@ "RequestMethod": "PATCH", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "568", + "Content-Length": "572", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "17a23195a39ce5a3e5feddb4354d8bf4", @@ -130,21 +130,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "NDQ5MDI4MTA4", + "deviceEtag": "MzY0MDgxMzg5", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -158,17 +158,17 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "712", + "Content-Length": "714", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d753cd9b-2939-47f6-aef8-b9345a3f73f1" + "x-ms-request-id": "96c7fc37-6e5e-4ce0-a19c-cd804c37f7f5" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice646618704", "etag": "AAAAAAAAAAI=", - "deviceEtag": "NDQ5MDI4MTA4", + "deviceEtag": "MzY0MDgxMzg5", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -184,10 +184,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdated": "2020-06-25T16:48:50.3308382Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdated": "2020-06-25T16:48:50.3308382Z", "$lastUpdatedVersion": 2 } }, @@ -195,7 +195,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 } @@ -212,7 +212,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d8c878c00ec7dd8fac7b303f88042f2b", @@ -222,10 +222,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c20d6626-6765-40be-9554-7c2ce3375d92" + "x-ms-request-id": "9c1448ba-9ee5-448e-b868-d25efdbf6377" }, "ResponseBody": [] } From c7869ea4fecf14fe5a12e4897e52831d28f74a64 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Thu, 25 Jun 2020 14:21:21 -0700 Subject: [PATCH 04/12] Update DevicesClientTests.cs --- .../tests/DevicesClientTests.cs | 118 ++++++++++++++---- 1 file changed, 95 insertions(+), 23 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 743716b4084e8..984488b638c16 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -11,10 +11,17 @@ namespace Azure.Iot.Hub.Service.Tests { + /// + /// Test all APIs of a DeviceClient. + /// + /// + /// All API calls are wrapped in a try catch block so we can clean up resources regardless of the test outcome. + /// public class DevicesClientTests : E2eTestBase { private const int BULK_DEVICE_COUNT = 10; - private TimeSpan QUERY_RETRY_LIMIT = TimeSpan.FromSeconds(10); + private readonly TimeSpan _queryMaxWaitTime = TimeSpan.FromSeconds(30); + private readonly TimeSpan _queryRetryInterval = TimeSpan.FromSeconds(2); public DevicesClientTests(bool isAsync) : base(isAsync) @@ -26,15 +33,13 @@ public DevicesClientTests(bool isAsync) /// This test includes CRUD operations only. /// [Test] - public async Task Devices_IdentityLifecycle() + public async Task DevicesClient_IdentityLifecycle() { string testDeviceName = $"IdentityLifecycleDevice{GetRandom()}"; DeviceIdentity device = null; - IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create a device @@ -75,7 +80,7 @@ public async Task Devices_IdentityLifecycle() /// Test basic operations of a Device Twin. /// [Test] - public async Task Devices_TwinLifecycle() + public async Task DevicesClient_DeviceTwinLifecycle() { string testDeviceName = $"TwinLifecycleDevice{GetRandom()}"; @@ -83,7 +88,6 @@ public async Task Devices_TwinLifecycle() IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create a device @@ -126,7 +130,7 @@ public async Task Devices_TwinLifecycle() /// In this test we create multiple brand new devices and expect them all to be created with no issues. /// [Test] - public async Task Devices_BulkCreation() + public async Task DevicesClient_BulkCreation() { string testDeviceprefix = $"bulkDevice"; @@ -134,7 +138,6 @@ public async Task Devices_BulkCreation() IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create all devices @@ -149,12 +152,70 @@ public async Task Devices_BulkCreation() } /// - /// Test bulk Device creation. - /// All but one devices are going to be brand new. One device alreadyExists. + /// Test bulk Device update. + /// In this test we create multiple brand new devices and expect them all to be created with no issues. + /// + [Test] + public async Task DevicesClient_BulkUpdate() + { + string testDeviceprefix = $"bulkDeviceUpdate"; + + IoTHubServiceClient client = GetClient(); + IList listOfDevicesToUpdate = null; + + try + { + // Create two devices + Response deviceOneCeateResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new DeviceIdentity + { + DeviceId = $"{testDeviceprefix}{GetRandom()}", + Status = DeviceStatus.Enabled, + }).ConfigureAwait(false); + + Response deviceTwoCeateResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new DeviceIdentity + { + DeviceId = $"{testDeviceprefix}{GetRandom()}", + Status = DeviceStatus.Enabled, + }).ConfigureAwait(false); + + DeviceIdentity deviceOne = deviceOneCeateResponse.Value; + DeviceIdentity deviceTwo = deviceTwoCeateResponse.Value; + + listOfDevicesToUpdate = new List { deviceOne, deviceTwo }; + + // Update device status to disabled. + deviceOne.Status = DeviceStatus.Disabled; + deviceTwo.Status = DeviceStatus.Disabled; + + // Make the API call to disable devices. + Response updateResponse = + await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.Unconditional) + .ConfigureAwait(false); + + Assert.IsTrue(updateResponse.Value.IsSuccessful, "Bulk device update must be successful"); + + // Verify the devices status is updated. + deviceOne = (await client.Devices.GetIdentityAsync(deviceOne.DeviceId)).Value; + deviceTwo = (await client.Devices.GetIdentityAsync(deviceTwo.DeviceId)).Value; + + deviceOne.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); + deviceTwo.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); + } + finally + { + await Cleanup(client, listOfDevicesToUpdate); + } + } + + /// + /// Test bulk Device creation with an expected error. + /// All but one devices are going to be brand new. One device already exists and we expect an error regarding that specific device. /// [Test] [Ignore("DeviceRegistryOperationError cannot be parsed since service sends integer instead of a string")] - public async Task Devices_BulkCreation_OneAlreadyExists() + public async Task DevicesClient_BulkCreation_OneAlreadyExists() { string testDeviceprefix = $"bulkDevice"; string existingDeviceName = $"{testDeviceprefix}{GetRandom()}"; @@ -162,7 +223,6 @@ public async Task Devices_BulkCreation_OneAlreadyExists() IoTHubServiceClient client = GetClient(); IList devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT-1); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // We first create a single device. @@ -186,27 +246,33 @@ public async Task Devices_BulkCreation_OneAlreadyExists() /// Test bulk device and twin creation. /// [Test] - public async Task Devices_BulkCreation_DeviceWithTwin() + public async Task DevicesClient_BulkCreation_DeviceWithTwin() { string testDeviceprefix = $"bulkDeviceWithTwin"; + string userPropertyName = "user"; + string userPropertyValue = "userA"; IoTHubServiceClient client = GetClient(); IDictionary desiredProperties = new Dictionary { - { "user", "userA" } + { userPropertyName, userPropertyValue } }; // We will build multiple devices and all of them with the same desired properties for convenience. IDictionary devicesAndTwins = BuildDevicesAndTwins(testDeviceprefix, BULK_DEVICE_COUNT, desiredProperties); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create all devices with twins Response createResponse = await client.Devices.CreateIdentitiesWithTwinAsync(devicesAndTwins).ConfigureAwait(false); - Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation ended with an error"); + + // Verify that the desired properties were set + // For quicker test run, we will only verify the first device on the list. + Response getResponse = await client.Devices.GetTwinAsync(devicesAndTwins.Keys.First().DeviceId).ConfigureAwait(false); + getResponse.Value.Properties.Desired[userPropertyName].Should().Be(userPropertyValue); } finally { @@ -216,9 +282,11 @@ public async Task Devices_BulkCreation_DeviceWithTwin() /// /// Test query by getting all twins. + /// For the purpose of this test, we will create multiple devices (and device twins as a byproduct) + /// and list all twins and verify the query returns everything expected. /// [Test] - public async Task Devices_Query_GetTwins() + public async Task DevicesClient_Query_GetTwins() { string testDeviceprefix = $"bulkDevice"; @@ -226,7 +294,6 @@ public async Task Devices_Query_GetTwins() IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create all devices @@ -238,9 +305,7 @@ public async Task Devices_Query_GetTwins() int matchesFound = 0; DateTimeOffset startTime = DateTime.UtcNow; - while ( - matchesFound != BULK_DEVICE_COUNT - && DateTime.UtcNow - startTime < QUERY_RETRY_LIMIT) + while (DateTime.UtcNow - startTime < _queryMaxWaitTime) { matchesFound = 0; AsyncPageable twins = client.Devices.GetTwinsAsync(); @@ -253,9 +318,16 @@ public async Task Devices_Query_GetTwins() matchesFound++; } } + + if (matchesFound == BULK_DEVICE_COUNT) + { + break; + } + + await Task.Delay(_queryRetryInterval); } - matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to count of recently created devices."); + matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to the number of recently created devices."); } finally { @@ -292,7 +364,7 @@ private async Task Cleanup(IoTHubServiceClient client, IEnumerable Date: Thu, 25 Jun 2020 14:22:51 -0700 Subject: [PATCH 05/12] Update session recordings. --- .../DevicesClient_BulkCreation.json | 68 +++++ .../DevicesClient_BulkCreationAsync.json | 68 +++++ ...cesClient_BulkCreation_DeviceWithTwin.json | 130 ++++++++ ...ient_BulkCreation_DeviceWithTwinAsync.json | 130 ++++++++ .../DevicesClient_BulkUpdate.json | 278 ++++++++++++++++++ .../DevicesClient_BulkUpdateAsync.json | 278 ++++++++++++++++++ .../DevicesClient_DeviceTwinLifecycle.json | 237 +++++++++++++++ ...evicesClient_DeviceTwinLifecycleAsync.json | 237 +++++++++++++++ .../DevicesClient_IdentityLifecycle.json | 210 +++++++++++++ .../DevicesClient_IdentityLifecycleAsync.json | 210 +++++++++++++ .../DevicesClient_Query_GetTwins.json | 126 ++++++++ .../DevicesClient_Query_GetTwinsAsync.json | 126 ++++++++ .../DevicesClient_TwinLifecycle.json | 237 +++++++++++++++ .../DevicesClient_TwinLifecycleAsync.json | 237 +++++++++++++++ 14 files changed, 2572 insertions(+) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json new file mode 100644 index 0000000000000..526d0c42ee520 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "707", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "68a9862b6fe1c8667b76d3578e777e8c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1844682632\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1906449662\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1733031113\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice637195989\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1141385218\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1110488769\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1931346325\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice14932813\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice264422303\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1886844162\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:26 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "cb7a98b5-7621-4f91-b5ff-83d79f5628ab" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "517", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "20389682a9ef48e296e526551fbf96dc", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1844682632\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1906449662\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1733031113\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice637195989\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1141385218\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1110488769\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1931346325\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice14932813\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice264422303\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1886844162\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:26 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a88be6fb-67be-4117-a3d9-268a17b67daa" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2047780100" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json new file mode 100644 index 0000000000000..93b4bd052fe9a --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "708", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "9f33bfd1984e65aa214cc06ebe4fd602", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice938981638\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1190250327\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice238727890\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1980223866\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1695855564\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice933442212\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1580180749\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1677797952\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1118348821\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1591157015\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:27 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "56fa4eee-d8ee-4940-af06-a8b30f5bdfd1" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "518", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "61705aa6c9323eebf30deb08764510bf", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice938981638\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1190250327\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice238727890\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1980223866\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1695855564\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice933442212\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1580180749\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1677797952\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1118348821\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1591157015\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:27 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "04a4c7cf-ffb8-4d86-877d-4a5bbbab0079" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "846779539" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..c480cdc280715 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json @@ -0,0 +1,130 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1204", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "7016712d2594db6f1014befd36d0ff37", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1109223729\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin424129578\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1008012596\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin275442662\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin30389356\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin715021882\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1778863504\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin678975368\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin409277462\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:33 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "00387c70-c353-431c-9cc4-f9ee8dbd6dae" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/bulkDeviceWithTwin1109223729?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8f73cdcfa527500eb6b9e2f677fe22e6", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "690", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:33 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d9e07d35-aac3-479a-8c93-181d894e3fe6" + }, + "ResponseBody": { + "deviceId": "bulkDeviceWithTwin1109223729", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "MzExNDk5OTY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "user": "userA", + "$metadata": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1, + "user": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1 + } + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.2986318Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "594", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d533497f83be7a264a2956613633f386", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1109223729\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin424129578\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1008012596\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin275442662\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin30389356\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin715021882\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1778863504\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin678975368\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin409277462\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "5288df20-a7d9-43d5-89b3-4b679aecdbbc" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1405471046" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..76d0f4ced95ac --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json @@ -0,0 +1,130 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1205", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d568f5c8e57529c1e029374b1c53010a", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin304767959\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin655299890\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1439309114\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1676140744\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin369166372\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin782746723\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin854489741\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1377918686\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin577916315\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "761fc800-2344-40f1-b663-0ec8f7dd7cc0" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/bulkDeviceWithTwin304767959?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f08737db3f531255a2c51ba6431d0eda", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "689", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "47928cbf-2842-46cf-991d-69e2fdf2b6ea" + }, + "ResponseBody": { + "deviceId": "bulkDeviceWithTwin304767959", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "MzExNDk5OTY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "user": "userA", + "$metadata": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1, + "user": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1 + } + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.2986318Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "595", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "e4bdc527c97c715eedadb728278b8cde", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin304767959\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin655299890\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1439309114\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1676140744\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin369166372\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin782746723\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin854489741\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1377918686\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin577916315\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "0366bf7b-e5f6-435f-8192-7fa599fc71e3" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "999894705" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..09db1f1cf26b7 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate2058308758?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "60", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "641381e4f4e82e72fdd64d15ec9f16ee", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate2058308758", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "610", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mjc3MjE5MDI4\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a0d75c9a-d6af-4843-a4e8-21d14b7aa56b" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate2058308758", + "generationId": "637287169544809632", + "etag": "Mjc3MjE5MDI4", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "/L5S3iGL99oUzG\u002BGFOahlPxPMAroP22Ae\u002BRVOOmkXD4=", + "secondaryKey": "UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1689940095?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "60", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3e1134d9471886feac1982596376afac", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate1689940095", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "610", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzcwODU0OTA1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a01aad72-4eab-405f-aabe-ce1dee32f60d" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1689940095", + "generationId": "637287169545434847", + "etag": "MzcwODU0OTA1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=", + "secondaryKey": "8HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "659", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022Mjc3MjE5MDI4\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022/L5S3iGL99oUzG\\u002BGFOahlPxPMAroP22Ae\\u002BRVOOmkXD4=\u0022,\u0022secondaryKey\u0022:\u0022UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MzcwODU0OTA1\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=\u0022,\u0022secondaryKey\u0022:\u00228HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=\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": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "00590d13-ba6c-4714-a350-b1ffd77db9ca" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate2058308758?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c655ea9f58983acb15de3cdaefd49a5f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "621", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mjc3MjE5MDI5\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "7a2c4a37-4119-4efc-827e-2b93d676778a" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate2058308758", + "generationId": "637287169544809632", + "etag": "Mjc3MjE5MDI5", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.569219Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "/L5S3iGL99oUzG\u002BGFOahlPxPMAroP22Ae\u002BRVOOmkXD4=", + "secondaryKey": "UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1689940095?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b407689dbed608ed95262e31f6aed0e3", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "621", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzcwODU0OTA2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c605cb5b-ca8c-4c35-9da0-e52c011080e9" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1689940095", + "generationId": "637287169545434847", + "etag": "MzcwODU0OTA2", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.569219Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=", + "secondaryKey": "8HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "161", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022Mjc3MjE5MDI4\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MzcwODU0OTA1\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "959840c2-c3a6-48ab-90e3-6a2498c272a3" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1759351927" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..50594fa9062d2 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1349701714?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "60", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "696cb7b4ddffbd7be581104269a73535", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate1349701714", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "610", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTQwMTIxNjEy\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "61b13217-4be8-4c12-a596-1c4b826d60ac" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1349701714", + "generationId": "637287169544390014", + "etag": "OTQwMTIxNjEy", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "rx9oEiFRxG/Kha9kOkjBQt7on6KE\u002BzAkPoYzr42Gu8k=", + "secondaryKey": "qgcW3WJd8mNrgOt09vevxVES\u002B08LhNrN40/7PKKKq6s=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate927166103?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "59", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "444f2432b2d486afabaae9f7b0a743fd", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate927166103", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "609", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTg1NTIwODM2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "ed82efe8-825e-49b6-9e90-955ef83feae8" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate927166103", + "generationId": "637287169545041039", + "etag": "OTg1NTIwODM2", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\u002Bh2Bhh\u002Bs=", + "secondaryKey": "ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\u002Bim\u002B5/Hmw=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "678", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022OTQwMTIxNjEy\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022rx9oEiFRxG/Kha9kOkjBQt7on6KE\\u002BzAkPoYzr42Gu8k=\u0022,\u0022secondaryKey\u0022:\u0022qgcW3WJd8mNrgOt09vevxVES\\u002B08LhNrN40/7PKKKq6s=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022OTg1NTIwODM2\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\\u002Bh2Bhh\\u002Bs=\u0022,\u0022secondaryKey\u0022:\u0022ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\\u002Bim\\u002B5/Hmw=\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": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "dc154fb6-d9c8-4414-8979-868378ba7b10" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1349701714?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "cfdd23170e7505e0bde3543291c635d9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "622", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTQwMTIxNjEz\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "0a6453a5-935b-4c55-8010-c04ebd1b3412" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1349701714", + "generationId": "637287169544390014", + "etag": "OTQwMTIxNjEz", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.5360869Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "rx9oEiFRxG/Kha9kOkjBQt7on6KE\u002BzAkPoYzr42Gu8k=", + "secondaryKey": "qgcW3WJd8mNrgOt09vevxVES\u002B08LhNrN40/7PKKKq6s=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate927166103?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b5eb45cc8a107ad301cb9542b127dadc", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "621", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTg1NTIwODM3\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1a7080c8-2e94-4b2d-aa90-016448aed58d" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate927166103", + "generationId": "637287169545041039", + "etag": "OTg1NTIwODM3", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.5454894Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\u002Bh2Bhh\u002Bs=", + "secondaryKey": "ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\u002Bim\u002B5/Hmw=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "160", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022OTQwMTIxNjEy\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022OTg1NTIwODM2\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6d182928-1b07-49fd-8014-61debe6fa481" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1394828034" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..03a1fd107790f --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "42", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3fc573c466686001c7ff41343a27d538", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice10350067" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "611", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022NjY5NTY0OTg0\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1090e6ab-4a9b-4910-bc3e-6a47d2398ac7" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice10350067", + "generationId": "637287169547069383", + "etag": "NjY5NTY0OTg0", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "UeMU/JbG3nbrdaiYdrUPE/CX03LLry6R\u002BDmTaR\u002BqQbA=", + "secondaryKey": "MFGZY/Pv8AzzUvh2GVT7B9lbgr4eUyLEPUJ8\u002BdOHdA8=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4f613570030fbaa6d05fd462b2f0447b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f5088b7a-2c4d-4772-8888-363f0f5858c2" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice10350067", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NjY5NTY0OTg0", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "571", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4d3853d2c77fbf38574891f935937306", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice10350067", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NjY5NTY0OTg0", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "709", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1120f2d3-58b1-4b9f-a45f-024955fe3224" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice10350067", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NjY5NTY0OTg0", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.76955Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T21:22:34.76955Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "9457a6e0d26ac1e3cc0a6f09929fadd7", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f78011aa-07d8-4003-8f25-07cf1fcc1f52" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "690979027" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..f06fa9645a1a2 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "44", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c3bc58b2d82a3592661c46c19a024a43", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice2112406490" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "613", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022NDEzNzI4MjY2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9825ff00-3534-49d2-ab34-fada7e6029c3" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "generationId": "637287169546884392", + "etag": "NDEzNzI4MjY2", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "gLClG\u002BOAi/o8lq4khlCqxcSuhP3uoY5RNAZjGLpqFss=", + "secondaryKey": "B2rgJLE4i8zMI/A\u002Bar\u002BOM5gV/1KEP8lLpAxQP3wqYJg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "efc06b49465dda0c6b59baccfc4f1b6e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "589", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c1d7d3b0-9bb2-41fc-a87a-342754abae05" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NDEzNzI4MjY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "573", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "1d90e307d990685bba77ea75fd6c11c9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NDEzNzI4MjY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "715", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "24a5f07f-6cb7-47f7-b9a3-64767b76e76c" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NDEzNzI4MjY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7509423Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T21:22:34.7509423Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "89f2853940dc6b7d4ce258d01dc53816", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d2699661-0472-48e5-8888-7e9f9fec2f60" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1067398702" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..424011efa9fb3 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "47", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5679c9bcad546a8756dc203fa49513a9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice726366390" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "616", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzUyNDgyOTcy\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "8a531da8-b4f3-4a1f-9823-0f5968fcbe63" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcy", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2bc871c8a62a1c75c0206b5953bf15b9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "619", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzUyNDgyOTcy\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f800787e-26dc-4d01-ad86-91085c36383a" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcy", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "588", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "33602e35d25224b76c1cf1bfa4037156", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcy", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzUyNDgyOTcz\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d3040bee-ed96-4cd5-8d3d-205a6408ba78" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcz", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.9249407Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "a2545d0ae9c8158c545c9633412e1796", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "ed859d98-6b40-4ae8-834d-2f4ea0df3355" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "347912009" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..a7fcc305175dd --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "47", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "50a2cb3c13b3e7cbf895467b122e43c5", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice375200814" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "616", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mzk0MjI0MzIw\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "db50e682-f8a2-4ffc-9f1d-0f7ca88ef17a" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIw", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "0e1c90f63341274e96d84d07faccdc7d", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "619", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mzk0MjI0MzIw\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "35f07bea-3d93-42c7-95e0-ad46456653b0" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIw", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "578", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f1fab84acbd08c2223e4d552e945d17f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIw", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mzk0MjI0MzIx\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "50d45451-7e6b-46c6-8b77-9c72d4cf11f9" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIx", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.9245877Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "e95fc3fecb2a08ec7d7abadbc5c4ed2c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "b40bd280-443f-4f70-ab83-d11322d3e8a8" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1984409653" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..1e241443d9828 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json @@ -0,0 +1,126 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "704", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "ee5245ea8beec4801e9fa909dea51ff2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice779703902\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2085718378\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1435339341\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice983827358\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice376255258\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice772015350\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice414684285\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1353506827\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice709993140\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice767781652\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "cbea7905-3cc1-430b-a202-8c124b066593" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8b4854735241f9d5c7c305f99c28ab62", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "4305", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "e5bbaba9-fa3a-4d4b-8f7a-b0a00dd03993" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjY2MTQ5NTU5\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-25T21:22:34.2929707Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022IdentityLifecycleDevice726366390\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzUyNDgyOTcy\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-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQwODYwOTc3\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-25T21:22:34.2977789Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "813856edcee31cdf24ef1f1bad548ca7", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "11615", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:37 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "77d292bb-b9bf-4556-a01f-1f252e7250bb" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA4OTM1OTQw\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-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjMxNDg3NjE2\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-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc3MTI0NjQ=\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-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTMyODY3OTY1\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-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzE2MTkwMzI0\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-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTMzNzU3Mjg2\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-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzA5NDQzMjMx\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-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyNDc5MDk5\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-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "514", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2883277f28c298d36f59272a858728f5", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice779703902\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2085718378\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1435339341\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice983827358\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice376255258\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice772015350\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice414684285\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1353506827\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice709993140\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice767781652\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:37 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6bc49e3c-da06-45c6-9a81-392b2cc78579" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1304827544" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..a89f7410feb4f --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json @@ -0,0 +1,126 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "708", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "7742f074e1e91f6720ab9f76689c6096", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice328709140\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2044993392\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1686270456\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice512290233\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1918934926\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1046556416\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1497828432\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1753905059\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice568420481\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1904312372\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:35 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "67d20faf-9db3-45ad-8a2b-09927f6fd31a" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c39e4840ff4bab1dc877bf0ac4e42245", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "4305", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:35 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "e9a170cb-badc-4d9e-876c-a02ca0bfdfc0" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjY2MTQ5NTU5\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-25T21:22:34.2929707Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022IdentityLifecycleDevice726366390\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzUyNDgyOTcy\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-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQwODYwOTc3\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-25T21:22:34.2977789Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\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.20200625.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": "11615", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:36 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "8564ffa6-80df-4499-a2ca-3ed49edb438a" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA4OTM1OTQw\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-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjMxNDg3NjE2\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-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc3MTI0NjQ=\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-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTMyODY3OTY1\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-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzE2MTkwMzI0\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-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTMzNzU3Mjg2\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-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzA5NDQzMjMx\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-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyNDc5MDk5\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-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "518", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "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}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:36 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f4856c8c-0eb7-4f6e-a09c-e65dd385df3a" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "794071859" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json new file mode 100644 index 0000000000000..f476d8064d3dc --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "44", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b90dbf87fc1e3053b20de86d9a150e79", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice1969231255" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "613", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "ETag": "\u0022NjQ1MTQxOTM4\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d56d1112-dc3e-42e6-ba83-e04553d6a1d4" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "generationId": "637287135293360931", + "etag": "NjQ1MTQxOTM4", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "B3eyDnNX/pu0hVHcsYm2VbZtnIow5JZ7IhwtDr18o8g=", + "secondaryKey": "Vc2xwPPrSEGt41QUhYIlFCWit/0zz9DFdCKMtcghb4A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "da740151b56f07ea18e4197768aba83a", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "589", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "57c43ba5-731d-4f65-b5ea-65817f0b2c98" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NjQ1MTQxOTM4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "573", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "af0b8c3bf40a3c94c72acaa6b5d3a7c8", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NjQ1MTQxOTM4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "715", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "89f06148-f5f4-4995-8b53-fc35ddae84f0" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NjQ1MTQxOTM4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3829234Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T20:25:29.3829234Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d83b4fa980a5d228d405a039e3dcc707", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "cdd0999e-f858-4e83-aad1-b0f022604a6c" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2012074449" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json new file mode 100644 index 0000000000000..9d179168637a8 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "43", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "764bace5658c0b158b3f640a908e3c30", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice593220185" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "612", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "ETag": "\u0022Njg2ODgzMjg2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "0d7b8e16-c1dd-4be0-8c79-060047f78aa8" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice593220185", + "generationId": "637287135293298597", + "etag": "Njg2ODgzMjg2", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "lFm1Q61dr2z1mvwXjdN3D8vLNmQGAlTo8v8e5Cjk6rA=", + "secondaryKey": "OG\u002B7yZIjbY49eEwmKOd6INkmarf\u002Bd9xCNIQIBSHIzOc=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "ca283e3dc12bc919940b78f924368d71", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "588", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "52f656b2-d839-44bb-8770-824203924931" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice593220185", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "Njg2ODgzMjg2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "572", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "a74d6d5d18ec460484fb59a475c787de", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice593220185", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "Njg2ODgzMjg2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "712", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "bbb6436e-dc31-425b-a307-9aed72785577" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice593220185", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "Njg2ODgzMjg2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.392293Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T20:25:29.392293Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "6a942f59cf8d232d9382e281ed1be655", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "58a52af6-c0fc-4e64-987b-1e3801eb91a1" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2095138095" + } +} \ No newline at end of file From 838fd9839304f5c34c7cc759c5ca25e6ba2ec7b4 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Thu, 25 Jun 2020 14:51:22 -0700 Subject: [PATCH 06/12] feat(samples): Finish Modules samples (#12989) --- .../ModuleIdentityLifecycleSamples.cs | 237 ++++++++++++++---- .../src/IoTHubServiceClient.cs | 14 +- 2 files changed, 192 insertions(+), 59 deletions(-) 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 70eefa72e9ba3..c8744ee3cd905 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/samples/IotHubClientSamples/ModuleIdentityLifecycleSamples.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/samples/IotHubClientSamples/ModuleIdentityLifecycleSamples.cs @@ -1,11 +1,13 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Azure.Iot.Hub.Service.Models; namespace Azure.Iot.Hub.Service.Samples { /// - /// This sample goes through the lifecycle of a Module Identity for a device + /// This sample goes through the lifecycle of a Module Identity for a device. /// internal class ModuleIdentityLifecycleSamples { @@ -24,40 +26,37 @@ public async Task RunSampleAsync() string moduleId = $"module{Random.Next(MaxRandomValue)}"; // Create a DeviceIdentity. - DeviceIdentity deviceIdentity = await CreateDeviceIdentityAsync(deviceId); + await CreateDeviceIdentityAsync(deviceId); // Create a ModuleIdentity. - ModuleIdentity moduleIdentity = await CreateModuleIdentityAsync(deviceIdentity, moduleId); + await CreateModuleIdentityAsync(deviceId, moduleId); // List all modules within the device. - await ListAllModulesAsync(); + await ListAllModulesAsync(deviceId); // Get the Module Identity. - await GetModuleIdentityAsync(); + await GetModuleIdentityAsync(deviceId, moduleId); // Update Module Identity. - await UpdateModuleIdentityAsync(); + await UpdateModuleIdentityAsync(deviceId, moduleId); - // Get Module Twin, - await GetModuleTwinAsync(); + // Get Module Twin. + await GetModuleTwinAsync(deviceId, moduleId); // Update Module Twin. - await UpdateModuleTwinAsync(); + await UpdateModuleTwinAsync(deviceId, moduleId); - // Invoke a method on the ModuleTwin - await InvokeMethodAsync(); + // Delete the module identity. + await DeleteModuleIdentityAsync(deviceId, moduleId); - // Delete the module identity - await DeleteModuleIdentityAsync(moduleIdentity); - - // Delete the device (cleanup) - await DeleteDeviceIdentityAsync(deviceIdentity); + // Delete the device (cleanup). + await DeleteDeviceIdentityAsync(deviceId); } /// - /// Creates a new device identity + /// Creates a new device identity. /// - /// Device Id for the device identity + /// Unique identifier of the device. public async Task CreateDeviceIdentityAsync(string deviceId) { SampleLogger.PrintHeader("CREATE DEVICE IDENTITY"); @@ -72,10 +71,9 @@ public async Task CreateDeviceIdentityAsync(string deviceId) { Console.WriteLine($"Creating a new device with Id '{deviceId}'"); - // Call APIs to create the device identity. Response response = await IoTHubServiceClient.Devices.CreateOrUpdateIdentityAsync(deviceIdentity); - SampleLogger.PrintSuccess($"Successfully create a new device identity with Id: '{deviceId}'"); + SampleLogger.PrintSuccess($"Successfully create a new device identity with Id: '{response.Value.DeviceId}', ETag: '{response.Value.Etag}'"); return response.Value; } @@ -87,18 +85,18 @@ public async Task CreateDeviceIdentityAsync(string deviceId) } /// - /// Creates a new module identity + /// Creates a new module identity. /// - /// Device identity - /// Module Id for the module identity - public async Task CreateModuleIdentityAsync(DeviceIdentity deviceIdentity, string moduleId) + /// Unique identifier of the device. + /// Unique identifier of the new module. + public async Task CreateModuleIdentityAsync(string deviceId, string moduleId) { SampleLogger.PrintHeader("CREATE MODULE IDENTITY"); // Construct the module identity object. var moduleIdentity = new ModuleIdentity { - DeviceId = deviceIdentity.DeviceId, + DeviceId = deviceId, ModuleId = moduleId }; @@ -109,7 +107,7 @@ public async Task CreateModuleIdentityAsync(DeviceIdentity devic // Call APIs to create the module identity. Response response = await IoTHubServiceClient.Modules.CreateOrUpdateIdentityAsync(moduleIdentity); - SampleLogger.PrintSuccess($"Successfully created a new module identity with Id: '{moduleId}'"); + SampleLogger.PrintSuccess($"Successfully created a new module identity: DeviceId: '{deviceId}', ModuleId: '{response.Value.ModuleId}', ETag: '{response.Value.Etag}'"); return response.Value; } @@ -120,53 +118,185 @@ public async Task CreateModuleIdentityAsync(DeviceIdentity devic } } - public Task ListAllModulesAsync() + /// + /// List all module identities within a device. + /// + /// Unique identifier of the device to query. + public async Task> ListAllModulesAsync(string deviceId) { - return Task.CompletedTask; - } + SampleLogger.PrintHeader("LIST ALL MODULES"); - public Task GetModuleIdentityAsync() - { - return Task.CompletedTask; + try + { + Console.WriteLine($"Listing all modules in device with Id: '{deviceId}'\n"); + + Response> response = await IoTHubServiceClient.Modules.GetIdentitiesAsync(deviceId); + + foreach (ModuleIdentity moduleIdentity in response.Value) + { + SampleLogger.PrintSuccess($"\t- Device Id: '{moduleIdentity.DeviceId}', Module Id: '{moduleIdentity.ModuleId}', ETag: '{moduleIdentity.Etag}'"); + } + + return response.Value; + } + catch (Exception ex) + { + SampleLogger.FatalError($"Failed to list module identities due to:\n{ex}"); + throw; + } } - public Task UpdateModuleIdentityAsync() + /// + /// Get a module identity. + /// + /// Unique identifier of the device the module belongs to. + /// Unique identifier of the module to get. + public async Task GetModuleIdentityAsync(string deviceId, string moduleId) { - return Task.CompletedTask; + SampleLogger.PrintHeader("GET A MODULE"); + + try + { + Console.WriteLine($"Getting module identity with Id: '{moduleId}'\n"); + + Response response = await IoTHubServiceClient.Modules.GetIdentityAsync(deviceId, moduleId); + + ModuleIdentity moduleIdentity = response.Value; + + SampleLogger.PrintSuccess($"\t- Device Id: '{moduleIdentity.DeviceId}', Module Id: '{moduleIdentity.ModuleId}', ETag: '{moduleIdentity.Etag}'"); + + return moduleIdentity; + } + catch (Exception ex) + { + SampleLogger.FatalError($"Failed to get a module identity due to:\n{ex}"); + throw; + } } - public Task GetModuleTwinAsync() + /// + /// Update a module identity. + /// + /// Unique identifier of the device the module belongs to. + /// Unique identifier of the module to be updated. + public async Task UpdateModuleIdentityAsync(string deviceId, string moduleId) { - return Task.CompletedTask; + SampleLogger.PrintHeader("UPDATE A MODULE"); + + try + { + Response getResponse = await IoTHubServiceClient.Modules.GetIdentityAsync(deviceId, moduleId); + + ModuleIdentity moduleIdentity = getResponse.Value; + Console.WriteLine($"Current module identity: DeviceId: '{moduleIdentity.DeviceId}', ModuleId: '{moduleIdentity.ModuleId}', ManagedBy: '{moduleIdentity.ManagedBy ?? "N/A"}', ETag: '{moduleIdentity.Etag}'"); + + 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); + + ModuleIdentity updatedModule = response.Value; + + SampleLogger.PrintSuccess($"Successfully updated module identity: DeviceId: '{updatedModule.DeviceId}', ModuleId: '{updatedModule.ModuleId}', ManagedBy: '{updatedModule.ManagedBy}', ETag: '{updatedModule.Etag}'"); + + return updatedModule; + } + catch (Exception ex) + { + SampleLogger.FatalError($"Failed to update a module identity due to:\n{ex}"); + throw; + } } - public Task UpdateModuleTwinAsync() + /// + /// Get module twin. + /// + /// Unique identifier of the device the module belongs to. + /// Unique identifier of the module to be updated. + public async Task GetModuleTwinAsync(string deviceId, string moduleId) { - return Task.CompletedTask; + SampleLogger.PrintHeader("GET A MODULE TWIN"); + + try + { + Console.WriteLine($"Getting module twin with Id: '{moduleId}'"); + + Response response = await IoTHubServiceClient.Modules.GetTwinAsync(deviceId, moduleId); + + SampleLogger.PrintSuccess($"\t- Module Twin: DeviceId: '{response.Value.DeviceId}', ModuleId: '{response.Value.ModuleId}', Status: '{response.Value.Status}', ETag: '{response.Value.Etag}'"); + + return response.Value; + } + catch (Exception ex) + { + SampleLogger.FatalError($"Failed to get a module twin due to:\n{ex}"); + throw; + } } - public Task InvokeMethodAsync() + /// + /// Update a module twin desired properties. + /// + /// Unique identifier of the device the module belongs to. + /// Unique identifier of the module to be updated. + public async Task UpdateModuleTwinAsync(string deviceId, string moduleId) { - return Task.CompletedTask; + SampleLogger.PrintHeader("UPDATE A MODULE TWIN"); + + string userPropName = "user"; + + try + { + // Get the device module + Response getResponse = await IoTHubServiceClient.Modules.GetTwinAsync(deviceId, moduleId); + TwinData moduleTwin = getResponse.Value; + + Console.WriteLine($"Updating module twin: DeviceId: '{moduleTwin.DeviceId}', ModuleId: '{moduleTwin.ModuleId}', ETag: '{moduleTwin.Etag}'"); + Console.WriteLine($"Setting a new desired property {userPropName} to: '{Environment.UserName}'"); + + moduleTwin.Properties.Desired.Add(new KeyValuePair(userPropName, Environment.UserName)); + + Response response = await IoTHubServiceClient.Modules.UpdateTwinAsync(moduleTwin, IfMatchPrecondition.UnconditionalIfMatch); + + TwinData updatedTwin = response.Value; + + var userPropValue = (string) updatedTwin.Properties.Desired + .Where(p => p.Key == userPropName) + .First() + .Value; + + SampleLogger.PrintSuccess($"Successfully updated module twin: DeviceId: '{updatedTwin.DeviceId}', ModuleId: '{updatedTwin.ModuleId}', desired property: [{userPropName}: '{userPropValue}'], ETag: '{updatedTwin.Etag}',"); + + return updatedTwin; + } + catch (Exception ex) + { + SampleLogger.FatalError($"Failed to update a module identity due to:\n{ex}"); + throw; + } } /// - /// Deletes a module identity + /// Deletes a module identity. /// - /// Module identity to delete - public async Task DeleteModuleIdentityAsync(ModuleIdentity moduleIdentity) + /// Unique identifier of the device the module belongs to. + /// Unique identifier of the module to be updated. + public async Task DeleteModuleIdentityAsync(string deviceId, string moduleId) { SampleLogger.PrintHeader("DELETE MODULE IDENTITY"); try { - Console.WriteLine($"Deleting module identity with Id: '{moduleIdentity.ModuleId}'"); + // Get the module identity first. + Response getResponse = await IoTHubServiceClient.Modules.GetIdentityAsync(deviceId, moduleId); + ModuleIdentity moduleIdentity = getResponse.Value; - // Call APIs to delete the module identity. - // We use UnconditionalIfMatch to force delete the Module Identity (disregard the IfMatch ETag) + 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); - SampleLogger.PrintSuccess($"Successfully deleted module identity with Id: '{moduleIdentity.ModuleId}'"); + SampleLogger.PrintSuccess($"Successfully deleted module identity: DeviceId: '{deviceId}', ModuleId: '{moduleId}'"); } catch (Exception ex) { @@ -175,19 +305,22 @@ public async Task DeleteModuleIdentityAsync(ModuleIdentity moduleIdentity) } /// - /// Deletes a device identity + /// Deletes a device identity. /// - /// Device identity to delete - public async Task DeleteDeviceIdentityAsync(DeviceIdentity deviceIdentity) + /// Unique identifier of the device. + public async Task DeleteDeviceIdentityAsync(string deviceId) { SampleLogger.PrintHeader("DELETE DEVICE IDENTITY"); try { + // Get the device identity first. + Response getResponse = await IoTHubServiceClient.Devices.GetIdentityAsync(deviceId); + DeviceIdentity deviceIdentity = getResponse.Value; + Console.WriteLine($"Deleting device identity with Id: '{deviceIdentity.DeviceId}'"); - // Call APIs to delete the device identity. - // We use UnconditionalIfMatch to force delete the Device Identity (disregard the IfMatch ETag) + // We use UnconditionalIfMatch to force delete the Device Identity (disregard the IfMatch ETag). Response response = await IoTHubServiceClient.Devices.DeleteIdentityAsync(deviceIdentity, IfMatchPrecondition.UnconditionalIfMatch); SampleLogger.PrintSuccess($"Successfully deleted device identity with Id: '{deviceIdentity.DeviceId}'"); diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs index 2ca72c0747714..989d7759b36e9 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/IoTHubServiceClient.cs @@ -21,27 +21,27 @@ public class IoTHubServiceClient private readonly DeviceMethodRestClient _deviceMethodRestClient; /// - /// place holder for Devices + /// place holder for Devices. /// public virtual DevicesClient Devices { get; private set; } /// - /// place holder for Modules + /// place holder for Modules. /// public virtual ModulesClient Modules { get; private set; } /// - /// place holder for Statistics + /// place holder for Statistics. /// public virtual StatisticsClient Statistics { get; private set; } /// - /// place holder for Messages + /// place holder for Messages. /// public virtual CloudToDeviceMessagesClient Messages { get; private set; } /// - /// place holder for Files + /// place holder for Files. /// public virtual FilesClient Files { get; private set; } @@ -95,7 +95,7 @@ public IoTHubServiceClient(string connectionString, IoTHubServiceClientOptions o _httpPipeline = HttpPipelineBuilder.Build(options); _registryManagerRestClient = new RegistryManagerRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); - _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, null, options.GetVersionString()); + _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); _deviceMethodRestClient = new DeviceMethodRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); Devices = new DevicesClient(_registryManagerRestClient, _twinRestClient, _deviceMethodRestClient); @@ -144,7 +144,7 @@ public IoTHubServiceClient(Uri endpoint, TokenCredential credential, IoTHubServi _httpPipeline = HttpPipelineBuilder.Build(options); _registryManagerRestClient = new RegistryManagerRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); - _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, null, options.GetVersionString()); + _twinRestClient = new TwinRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); _deviceMethodRestClient = new DeviceMethodRestClient(_clientDiagnostics, _httpPipeline, _endpoint, options.GetVersionString()); Devices = new DevicesClient(_registryManagerRestClient, _twinRestClient, _deviceMethodRestClient); From 2d8e77189c8c7485063a0cdb045f643bda87708f Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Wed, 24 Jun 2020 14:48:19 -0700 Subject: [PATCH 07/12] Initial commit --- .../tests/DevicesClientTests.cs | 130 ++++++++++++++---- 1 file changed, 100 insertions(+), 30 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 90a364d94c94f..e0a85e983d049 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -2,7 +2,8 @@ // Licensed under the MIT License. using System; -using System.Net; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Azure.Iot.Hub.Service.Models; using FluentAssertions; @@ -17,51 +18,120 @@ public DevicesClientTests(bool isAsync) { } + /// + /// Test basic lifecycle of a Device Identity. + /// This test includes CRUD operations only. + /// [Test] - public async Task Devices_Lifecycle() + public async Task Devices_IdentityLifecycle() { - // TODO: This is just a verification that tests run and it requires the tester to complete this test however they see fit. - string testDeviceName = $"testDevice{GetRandom()}"; + string testDeviceName = $"IdentityLifecycleDevice{GetRandom()}"; DeviceIdentity device = null; IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - try - { - device = (await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false)).Value; - } - catch (RequestFailedException ex) when (ex.Status == (int)HttpStatusCode.NotFound) - { - // If the Device doesn't exist, we will create it. - device = (await client.Devices.CreateOrUpdateIdentityAsync( - new Models.DeviceIdentity - { - DeviceId = testDeviceName - }).ConfigureAwait(false)).Value; - } + // CREATE A DEVICE + Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new Models.DeviceIdentity + { + DeviceId = testDeviceName + }).ConfigureAwait(false); + + device = createResponse.Value; + + // GET DEVICE + // Get the device and compare ETag values (should remain unchanged); + Response getResponse = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); + + getResponse.Value.Etag.Should().BeEquivalentTo(device.Etag, "ETag value should not have changed."); + + device = getResponse.Value; + + // UPDATE DEVICE + device.Status = DeviceStatus.Disabled; + + // TODO: (azabbasi) We should leave the IfMatchPrecondition to be the default value once we know more about the fix. + Response updateResponse = await client.Devices.CreateOrUpdateIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); - // Perform another GET. We expect the device to exist. - Response response = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); - device = response.Value; - response.GetRawResponse().Status.Should().Be(200); + updateResponse.Value.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); + + // DELETE DEVICE + // Deleting the device happens in the finally block as cleanup. } finally { - // cleanup - try - { - if (device != null) + await Cleanup(client, device); + } + } + + /// + /// Test basic operations of a Device Twin. + /// + [Test] + public async Task Devices_TwinLifecycle() + { + string testDeviceName = $"TwinLifecycleDevice{GetRandom()}"; + + DeviceIdentity device = null; + + IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // CREATE A DEVICE + // Creating a device also creates a twin for the device. + Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new Models.DeviceIdentity { - await client.Devices.DeleteIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); - } - } - catch (Exception ex) + DeviceId = testDeviceName + }).ConfigureAwait(false); + + device = createResponse.Value; + + // GET DEVICE TWIN + Response getResponse = await client.Devices.GetTwinAsync(testDeviceName).ConfigureAwait(false); + TwinData deviceTwin = getResponse.Value; + + deviceTwin.DeviceId.Should().BeEquivalentTo(testDeviceName, "DeviceId on the Twin should match that of the device."); + + // UPDATE DEVICE TWIN + string propName = "username"; + string propValue = "userA"; + deviceTwin.Properties.Desired.Add(new KeyValuePair(propName, propValue)); + + // TODO: (azabbasi) We should leave the IfMatchPrecondition to be the default value once we know more about the fix. + Response updateResponse = await client.Devices.UpdateTwinAsync(deviceTwin, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); + + updateResponse.Value.Properties.Desired.Where(p => p.Key == propName).First().Value.Should().Be(propValue, "Desired property value is incorrect."); + + // DELETE DEVICE + // Deleting the device happens in the finally block as cleanup. + } + finally + { + await Cleanup(client, device); + } + } + + private async Task Cleanup(IoTHubServiceClient client, DeviceIdentity device) + { + // cleanup + try + { + if (device != null) { - Assert.Fail($"Test clean up failed: {ex.Message}"); + await client.Devices.DeleteIdentityAsync(device, IfMatchPrecondition.UnconditionalIfMatch).ConfigureAwait(false); } } + catch (Exception ex) + { + Assert.Fail($"Test clean up failed: {ex.Message}"); + } } } } From c07ddec9698bbd594be75b37be5ebc12b3e141ca Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Wed, 24 Jun 2020 17:02:16 -0700 Subject: [PATCH 08/12] Record tests --- .../tests/DevicesClientTests.cs | 81 +++++ .../Devices_BulkCreation.json | 278 ++++++++++++++++++ .../Devices_BulkCreationAsync.json | 278 ++++++++++++++++++ .../Devices_IdentityLifecycle.json | 210 +++++++++++++ .../Devices_IdentityLifecycleAsync.json | 210 +++++++++++++ .../Devices_TwinLifecycle.json | 237 +++++++++++++++ .../Devices_TwinLifecycleAsync.json | 237 +++++++++++++++ 7 files changed, 1531 insertions(+) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index e0a85e983d049..c055e8a9d7a5f 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -118,6 +118,87 @@ public async Task Devices_TwinLifecycle() } } + /// + /// Test bulk Device creation. + /// In this test we create 10 brand new devices and expect them all to be created with no issues. + /// + [Test] + public async Task Devices_BulkCreation() + { + string testDeviceprefix = $"bulkDevice"; + + IEnumerable devices = CreateMultipleDevices(testDeviceprefix, 10); + + IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // CREATE ALL DEVICES + Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devices); + } + } + + /// + /// Test bulk Device creation. + /// 9 out of 10 devices are going to be brand new. One device alreadyExists. + /// + [Test] + [Ignore("DeviceRegistryOperationError cannot be parsed since service sends integer instead of a string")] + public async Task Devices_BulkCreation_OneAlreadyExists() + { + string testDeviceprefix = $"bulkDevice"; + string existingDeviceName = $"{testDeviceprefix}{GetRandom()}"; + + IoTHubServiceClient client = GetClient(); + // We first create a single device. + IList devices = CreateMultipleDevices(testDeviceprefix, 9); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + var response = await client.Devices.CreateOrUpdateIdentityAsync(new DeviceIdentity { DeviceId = existingDeviceName }); + + // Add the existing device to the list of devices to be bulk created. + devices.Add(response.Value); + + // CREATE ALL DEVICES + Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devices); + } + } + + private IList CreateMultipleDevices(string testDeviceprefix, int deviceCount) + { + List deviceList = new List(); + + for (int i = 0; i < deviceCount; i++) + { + deviceList.Add(new DeviceIdentity { DeviceId = $"{testDeviceprefix}{GetRandom()}" }); + } + + return deviceList; + } + + private async Task Cleanup(IoTHubServiceClient client, IEnumerable devices) + { + foreach (var device in devices) + { + await Cleanup(client, device); + } + } + private async Task Cleanup(IoTHubServiceClient client, DeviceIdentity device) { // cleanup diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json new file mode 100644 index 0000000000000..a9c729b9f255d --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "710", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8e8f49d4721190e9bcc400527a20eb17", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1798984736\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1616718940\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1065422429\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2041843540\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1535195514\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1242360030\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1938337894\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1428671928\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice256394861\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1372277789\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "35f9852d-b9c8-4e14-8e97-fb659d423394" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1798984736?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "0c806fe43acb1e8512e6d524270224fa", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f149352f-383a-44a8-a606-1e85497fbde2" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1616718940?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "7b38254991e9ab7b04f16b2448cee23d", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "8b933a54-28bf-4987-963b-22243cfc0a21" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1065422429?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f7f9626960379a52c3707c2a9cc468ba", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9e104a11-6e46-49fb-a51f-c2ce2e2d82a0" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2041843540?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5408069f70e8532ef3d507d9ce61d643", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c9d93966-b0f3-4fa1-a87c-e28798c0ea2b" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1535195514?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c5bb98042c08e9c2d39db77815500e3f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9b88bd6a-5c09-4f14-a7b5-78ddce4b42d3" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1242360030?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4184b1888dc5f95434a603625878cc62", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "20a41683-f474-4b7f-855a-60403cb48164" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1938337894?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "04263899a30973b2431f814ab8b53ea2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f89dbfac-d585-4a1f-ac30-64c6d34b65a9" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1428671928?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "1d51c7c794dd767e43c290622860905a", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "3d03a9ac-0a05-4c0f-b9f0-2ffc55769ffe" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice256394861?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "dcdf55d1092ae536ff11fea50c09407e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6e3ab10c-8044-4a2a-b6d7-4806f01c0637" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1372277789?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "919a6168ae270484baafc147124f4ae2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1afd7df4-b04b-470b-b6c4-02e65bac7d03" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2112638789" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json new file mode 100644 index 0000000000000..9260d3fa11b7f --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "708", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f433bd356157a36988a95da1517f36a2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice998842311\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1584729345\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2096480809\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1263270320\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1255465691\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice226997166\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1851598639\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice304169616\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1765744542\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1552665253\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "5d0ae470-ba00-4665-83e2-051f87c67007" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice998842311?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "fc65f2b361975233a4f9dacf64e3522c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "10767151-9909-4add-bb0b-25ca9a447b80" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1584729345?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8eb4537045a93af26ca352850825b0aa", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "222dcff2-9f65-40a0-835c-9de12900ce30" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2096480809?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3dfa3979a22ad40e8ae04f5e87993ea5", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "dad3f0f1-e5c8-4ca5-b2cf-edb0ca4e72cb" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1263270320?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "fd303157a7ca6ef8ff2b90f30ead497e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "e9340746-b7b4-4958-b88b-f078df5a81f4" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1255465691?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2b562f4815e9ce0244e004c8f593b2d3", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "35169ad9-7b05-45d9-8636-4db4a1a646a2" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice226997166?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d72ead64b3f5d1e0408b3dfe111bc5dc", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "4b3eb7df-4bbc-4634-bbb3-cfabb8ceed8c" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1851598639?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5715d096134342bc2e61b8eaa330796b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d6017c92-aa2e-4a8e-b80b-8037612dc811" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice304169616?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "618ebd79717f95894f84ea5dd703bc29", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "b12ac859-d478-4a2d-a4a5-79fcd8fc5936" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1765744542?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2432281a5a7e5190f1eca993faf52e10", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "adc38151-68f8-485a-aea7-4165e2148ffa" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1552665253?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5485d112648c245d478008be285f6a2b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "03258119-1aff-4282-b7c1-09e13b45e0bc" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1122923319" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json new file mode 100644 index 0000000000000..22aac8c745989 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "47", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "353676c2bf306c4344a5ed1868085bf7", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice366387633" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "616", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d5f51788-a909-40fe-bc97-a51d599329d9" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "bbf4d14508f2e11c432ecb0216e2e994", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "619", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "666634bd-7c66-4e25-91c4-cdd677491dcc" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "573", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "86c4e09d83e11f2c99945dd7664c45ba", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ1", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022Mjg5NDc3NDQ2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a96d0c4a-1f2e-4847-87fe-cd06a097d025" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice366387633", + "generationId": "637286400801413847", + "etag": "Mjg5NDc3NDQ2", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T00:01:20.2036247Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", + "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice366387633?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d3264503d003babe5954f101f3415661", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9b5083f8-5f24-42fe-a146-dd1644b90114" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1043933844" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json new file mode 100644 index 0000000000000..071f590de12c7 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "48", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8416cad6f82389f8c0ea714d5c3787cf", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice1735298060" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "617", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a8d00cb8-53b6-4bf9-a31a-b7a1069db640" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4b23ea189b9f6ed44e7181aa040503db", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "620", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "09c8dc4f-0384-4c66-ba47-a1b73efc4d83" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "574", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3dbd90ffc32446823f2a0ea6825fe857", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk1", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "629", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022MzA1ODIwNTk2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c8957737-64ee-4b91-8f5e-b39dc38c7676" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice1735298060", + "generationId": "637286400800035428", + "etag": "MzA1ODIwNTk2", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T00:01:20.0731498Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", + "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice1735298060?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4c4c798cbc313a6df5a735b1764d85bb", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9f5fe2c2-1565-429d-bc12-c34248eb1413" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1204752578" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json new file mode 100644 index 0000000000000..171322557b9ec --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "43", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "41fe598c33bb1a5a76adbe759995195f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice733357959" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "612", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "ETag": "\u0022OTg3NjcxNzUz\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c5384c54-bf3a-47af-9ee1-f0c86adf2620" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice733357959", + "generationId": "637286400803292455", + "etag": "OTg3NjcxNzUz", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "M7RPBF\u002Bqgu123EjTFeh19cH88gJeX/fJBGggGDflASI=", + "secondaryKey": "cJysO4Q1HNHFm0b2vEz1dAUI6vp2/hEe1RQEU5rzy7c=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "cde3fabc3d0b4d66685e7d34128d8cc9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "588", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c6452cfc-7250-46dc-90dd-3c899b0b04db" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice733357959", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "OTg3NjcxNzUz", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "572", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d6c5f0d9acbf2a7d7d6fbf4abe14a313", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice733357959", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "OTg3NjcxNzUz", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "714", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6147beec-aa92-469a-acd5-591d545b26c2" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice733357959", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "OTg3NjcxNzUz", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice733357959?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "fac5c131404e4e7bf3b0d85db62608e9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "4d9f76fe-cf1e-43ac-8b15-787ecb36f78c" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "254673204" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json new file mode 100644 index 0000000000000..80b5312e08b1a --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "43", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "193795b30f7fcba90d0253fbb706745e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice646618704" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "612", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "ETag": "\u0022NDQ5MDI4MTA4\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6f5b7ed3-cba6-47b4-9417-6b0f41c7e803" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice646618704", + "generationId": "637286400801730300", + "etag": "NDQ5MDI4MTA4", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "TiSH6o4dCIvDNNAWxjn8Ehg70FFtsYFFRno6bY6UEFM=", + "secondaryKey": "Pf/8hqk1mqh/lMR8inQLpZAGzxdmS9ZCQTykX0UkNIA=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5428891cd5c1bce8e94087a49be23893", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "584", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "5af01a92-11c1-4a1e-b144-cad257170084" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice646618704", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NDQ5MDI4MTA4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "568", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "17a23195a39ce5a3e5feddb4354d8bf4", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice646618704", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NDQ5MDI4MTA4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "712", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d753cd9b-2939-47f6-aef8-b9345a3f73f1" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice646618704", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NDQ5MDI4MTA4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T00:01:20.17303Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice646618704?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d8c878c00ec7dd8fac7b303f88042f2b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c20d6626-6765-40be-9554-7c2ce3375d92" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "46384281" + } +} \ No newline at end of file From 2fa47bb19ffd2fb12ca666098efb0693a7706701 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Thu, 25 Jun 2020 09:52:14 -0700 Subject: [PATCH 09/12] Add more tests --- .../Azure.Iot.Hub.Service.netstandard2.0.cs | 4 +- .../src/DevicesClient.cs | 4 +- .../tests/DevicesClientTests.cs | 142 ++++++++-- .../Devices_BulkCreation.json | 248 ++---------------- .../Devices_BulkCreationAsync.json | 248 ++---------------- .../Devices_BulkCreation_DeviceAndTwin.json | 68 +++++ ...vices_BulkCreation_DeviceAndTwinAsync.json | 68 +++++ .../Devices_BulkCreation_DeviceWithTwin.json | 68 +++++ ...ices_BulkCreation_DeviceWithTwinAsync.json | 68 +++++ .../Devices_IdentityLifecycle.json | 66 ++--- .../Devices_IdentityLifecycleAsync.json | 64 ++--- .../Devices_Query_GetTwins.json | 184 +++++++++++++ .../Devices_Query_GetTwinsAsync.json | 213 +++++++++++++++ .../Devices_TwinLifecycle.json | 54 ++-- .../Devices_TwinLifecycleAsync.json | 60 ++--- 15 files changed, 956 insertions(+), 603 deletions(-) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.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 91aaec80d0d33..8ebcc1cbdca28 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 @@ -30,8 +30,8 @@ protected DevicesClient() { } public virtual Azure.AsyncPageable GetTwinsAsync(int? pageSize = default(int?), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response InvokeMethod(string deviceId, Azure.Iot.Hub.Service.Models.CloudToDeviceMethodRequest directMethodRequest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> InvokeMethodAsync(string deviceId, Azure.Iot.Hub.Service.Models.CloudToDeviceMethodRequest directMethodRequest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response UpdateIdenties(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> UpdateIdentiesAsync(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual Azure.Response UpdateIdentities(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } + public virtual System.Threading.Tasks.Task> UpdateIdentitiesAsync(System.Collections.Generic.IEnumerable deviceIdentities, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response UpdateTwin(Azure.Iot.Hub.Service.Models.TwinData twinUpdate, Azure.Iot.Hub.Service.IfMatchPrecondition precondition = Azure.Iot.Hub.Service.IfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> UpdateTwinAsync(Azure.Iot.Hub.Service.Models.TwinData twinUpdate, Azure.Iot.Hub.Service.IfMatchPrecondition precondition = Azure.Iot.Hub.Service.IfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response UpdateTwins(System.Collections.Generic.IEnumerable twinUpdates, Azure.Iot.Hub.Service.BulkIfMatchPrecondition precondition = Azure.Iot.Hub.Service.BulkIfMatchPrecondition.IfMatch, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } diff --git a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs index 444e44c0d4142..0e2b8fd1d3d20 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/src/DevicesClient.cs @@ -247,7 +247,7 @@ public virtual Response CreateIdentities(IEnumera /// The condition on which to update each device identity. /// The cancellation token. /// The result of the bulk operation and the http response . - public virtual Task> UpdateIdentiesAsync( + public virtual Task> UpdateIdentitiesAsync( IEnumerable deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default) @@ -278,7 +278,7 @@ public virtual Task> UpdateIdentiesAsync /// The condition on which to update each device identity. /// The cancellation token. /// The result of the bulk operation and the http response . - public virtual Response UpdateIdenties( + public virtual Response UpdateIdentities( IEnumerable deviceIdentities, BulkIfMatchPrecondition precondition = BulkIfMatchPrecondition.IfMatch, CancellationToken cancellationToken = default) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index c055e8a9d7a5f..743716b4084e8 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -13,6 +13,9 @@ namespace Azure.Iot.Hub.Service.Tests { public class DevicesClientTests : E2eTestBase { + private const int BULK_DEVICE_COUNT = 10; + private TimeSpan QUERY_RETRY_LIMIT = TimeSpan.FromSeconds(10); + public DevicesClientTests(bool isAsync) : base(isAsync) { @@ -34,7 +37,7 @@ public async Task Devices_IdentityLifecycle() // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - // CREATE A DEVICE + // Create a device Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( new Models.DeviceIdentity { @@ -43,7 +46,7 @@ public async Task Devices_IdentityLifecycle() device = createResponse.Value; - // GET DEVICE + // Get device // Get the device and compare ETag values (should remain unchanged); Response getResponse = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); @@ -51,7 +54,7 @@ public async Task Devices_IdentityLifecycle() device = getResponse.Value; - // UPDATE DEVICE + // Update a device device.Status = DeviceStatus.Disabled; // TODO: (azabbasi) We should leave the IfMatchPrecondition to be the default value once we know more about the fix. @@ -59,7 +62,7 @@ public async Task Devices_IdentityLifecycle() updateResponse.Value.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); - // DELETE DEVICE + // Delete the device // Deleting the device happens in the finally block as cleanup. } finally @@ -83,7 +86,7 @@ public async Task Devices_TwinLifecycle() // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - // CREATE A DEVICE + // Create a device // Creating a device also creates a twin for the device. Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( new Models.DeviceIdentity @@ -93,13 +96,13 @@ public async Task Devices_TwinLifecycle() device = createResponse.Value; - // GET DEVICE TWIN + // Get the device twin Response getResponse = await client.Devices.GetTwinAsync(testDeviceName).ConfigureAwait(false); TwinData deviceTwin = getResponse.Value; deviceTwin.DeviceId.Should().BeEquivalentTo(testDeviceName, "DeviceId on the Twin should match that of the device."); - // UPDATE DEVICE TWIN + // Update device twin string propName = "username"; string propValue = "userA"; deviceTwin.Properties.Desired.Add(new KeyValuePair(propName, propValue)); @@ -109,7 +112,7 @@ public async Task Devices_TwinLifecycle() updateResponse.Value.Properties.Desired.Where(p => p.Key == propName).First().Value.Should().Be(propValue, "Desired property value is incorrect."); - // DELETE DEVICE + // Delete the device // Deleting the device happens in the finally block as cleanup. } finally @@ -120,21 +123,21 @@ public async Task Devices_TwinLifecycle() /// /// Test bulk Device creation. - /// In this test we create 10 brand new devices and expect them all to be created with no issues. + /// In this test we create multiple brand new devices and expect them all to be created with no issues. /// [Test] public async Task Devices_BulkCreation() { string testDeviceprefix = $"bulkDevice"; - IEnumerable devices = CreateMultipleDevices(testDeviceprefix, 10); + IEnumerable devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT); IoTHubServiceClient client = GetClient(); // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - // CREATE ALL DEVICES + // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); @@ -147,7 +150,7 @@ public async Task Devices_BulkCreation() /// /// Test bulk Device creation. - /// 9 out of 10 devices are going to be brand new. One device alreadyExists. + /// All but one devices are going to be brand new. One device alreadyExists. /// [Test] [Ignore("DeviceRegistryOperationError cannot be parsed since service sends integer instead of a string")] @@ -157,21 +160,102 @@ public async Task Devices_BulkCreation_OneAlreadyExists() string existingDeviceName = $"{testDeviceprefix}{GetRandom()}"; IoTHubServiceClient client = GetClient(); - // We first create a single device. - IList devices = CreateMultipleDevices(testDeviceprefix, 9); + IList devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT-1); // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { - var response = await client.Devices.CreateOrUpdateIdentityAsync(new DeviceIdentity { DeviceId = existingDeviceName }); + // We first create a single device. + Response response = await client.Devices.CreateOrUpdateIdentityAsync(new DeviceIdentity { DeviceId = existingDeviceName }); // Add the existing device to the list of devices to be bulk created. devices.Add(response.Value); - // CREATE ALL DEVICES + // Create all devices + Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devices); + } + } + + /// + /// Test bulk device and twin creation. + /// + [Test] + public async Task Devices_BulkCreation_DeviceWithTwin() + { + string testDeviceprefix = $"bulkDeviceWithTwin"; + + IoTHubServiceClient client = GetClient(); + + IDictionary desiredProperties = new Dictionary + { + { "user", "userA" } + }; + + // We will build multiple devices and all of them with the same desired properties for convenience. + IDictionary devicesAndTwins = BuildDevicesAndTwins(testDeviceprefix, BULK_DEVICE_COUNT, desiredProperties); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // Create all devices with twins + Response createResponse = await client.Devices.CreateIdentitiesWithTwinAsync(devicesAndTwins).ConfigureAwait(false); + + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + } + finally + { + await Cleanup(client, devicesAndTwins.Keys); + } + } + + /// + /// Test query by getting all twins. + /// + [Test] + public async Task Devices_Query_GetTwins() + { + string testDeviceprefix = $"bulkDevice"; + + IEnumerable devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT); + + IoTHubServiceClient client = GetClient(); + + // Wrap all the operations in a try block to be able to cleanup in case of any failure. + try + { + // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + + // We will retry the operation since it can take some time for the query to match what was recently created. + int matchesFound = 0; + DateTimeOffset startTime = DateTime.UtcNow; + + while ( + matchesFound != BULK_DEVICE_COUNT + && DateTime.UtcNow - startTime < QUERY_RETRY_LIMIT) + { + matchesFound = 0; + AsyncPageable twins = client.Devices.GetTwinsAsync(); + + // We will verify we have twins for all recently created devices. + await foreach (TwinData twin in twins) + { + if (devices.Any(d => d.DeviceId.Equals(twin.DeviceId, StringComparison.OrdinalIgnoreCase))) + { + matchesFound++; + } + } + } + + matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to count of recently created devices."); } finally { @@ -179,7 +263,20 @@ public async Task Devices_BulkCreation_OneAlreadyExists() } } - private IList CreateMultipleDevices(string testDeviceprefix, int deviceCount) + private IDictionary BuildDevicesAndTwins(string testDeviceprefix, int deviceCount, IDictionary desiredProperties) + { + IList devices = BuildMultipleDevices(testDeviceprefix, deviceCount); + IDictionary devicesAndTwins = new Dictionary(); + + foreach (DeviceIdentity device in devices) + { + devicesAndTwins.Add(device, new TwinData { Properties = new TwinProperties { Desired = desiredProperties } }); + } + + return devicesAndTwins; + } + + private IList BuildMultipleDevices(string testDeviceprefix, int deviceCount) { List deviceList = new List(); @@ -193,9 +290,16 @@ private IList CreateMultipleDevices(string testDeviceprefix, int private async Task Cleanup(IoTHubServiceClient client, IEnumerable devices) { - foreach (var device in devices) + try { - await Cleanup(client, device); + if (devices.Any()) + { + await client.Devices.DeleteIdentitiesAsync(devices, BulkIfMatchPrecondition.Unconditional); + } + } + catch (Exception ex) + { + Assert.Fail($"Test clean up failed: {ex.Message}"); } } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json index a9c729b9f255d..d51cfa1f5aab8 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation.json @@ -8,7 +8,7 @@ "Content-Length": "710", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8e8f49d4721190e9bcc400527a20eb17", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "35f9852d-b9c8-4e14-8e97-fb659d423394" + "x-ms-request-id": "8ed7d941-87ee-4429-b075-2dfcebcbfed7" }, "ResponseBody": { "isSuccessful": true, @@ -31,244 +31,34 @@ } }, { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1798984736?api-version=2020-03-13", - "RequestMethod": "DELETE", + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "If-Match": "*", + "Content-Length": "520", + "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "0c806fe43acb1e8512e6d524270224fa", "x-ms-return-client-request-id": "true" }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "f149352f-383a-44a8-a606-1e85497fbde2" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1616718940?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "7b38254991e9ab7b04f16b2448cee23d", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "8b933a54-28bf-4987-963b-22243cfc0a21" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1065422429?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "f7f9626960379a52c3707c2a9cc468ba", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "9e104a11-6e46-49fb-a51f-c2ce2e2d82a0" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2041843540?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "5408069f70e8532ef3d507d9ce61d643", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "c9d93966-b0f3-4fa1-a87c-e28798c0ea2b" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1535195514?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "c5bb98042c08e9c2d39db77815500e3f", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "9b88bd6a-5c09-4f14-a7b5-78ddce4b42d3" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1242360030?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "4184b1888dc5f95434a603625878cc62", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "20a41683-f474-4b7f-855a-60403cb48164" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1938337894?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "04263899a30973b2431f814ab8b53ea2", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "f89dbfac-d585-4a1f-ac30-64c6d34b65a9" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1428671928?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "1d51c7c794dd767e43c290622860905a", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "3d03a9ac-0a05-4c0f-b9f0-2ffc55769ffe" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice256394861?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "dcdf55d1092ae536ff11fea50c09407e", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "6e3ab10c-8044-4a2a-b6d7-4806f01c0637" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1372277789?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "919a6168ae270484baafc147124f4ae2", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1798984736\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1616718940\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1065422429\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2041843540\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1535195514\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1242360030\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1938337894\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1428671928\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice256394861\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1372277789\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1afd7df4-b04b-470b-b6c4-02e65bac7d03" + "x-ms-request-id": "fcc4b83b-df74-4055-bddb-8cb75303d2c3" }, - "ResponseBody": [] + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } } ], "Variables": { diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json index 9260d3fa11b7f..ffea706af99f1 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreationAsync.json @@ -8,7 +8,7 @@ "Content-Length": "708", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "f433bd356157a36988a95da1517f36a2", @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "5d0ae470-ba00-4665-83e2-051f87c67007" + "x-ms-request-id": "9c3864c5-4c3c-48f3-aa6a-c41e91d170e1" }, "ResponseBody": { "isSuccessful": true, @@ -31,244 +31,34 @@ } }, { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice998842311?api-version=2020-03-13", - "RequestMethod": "DELETE", + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "If-Match": "*", + "Content-Length": "518", + "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "fc65f2b361975233a4f9dacf64e3522c", "x-ms-return-client-request-id": "true" }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "10767151-9909-4add-bb0b-25ca9a447b80" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1584729345?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "8eb4537045a93af26ca352850825b0aa", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "222dcff2-9f65-40a0-835c-9de12900ce30" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice2096480809?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "3dfa3979a22ad40e8ae04f5e87993ea5", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "dad3f0f1-e5c8-4ca5-b2cf-edb0ca4e72cb" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1263270320?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "fd303157a7ca6ef8ff2b90f30ead497e", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "e9340746-b7b4-4958-b88b-f078df5a81f4" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1255465691?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "2b562f4815e9ce0244e004c8f593b2d3", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:05 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "35169ad9-7b05-45d9-8636-4db4a1a646a2" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice226997166?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "d72ead64b3f5d1e0408b3dfe111bc5dc", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "4b3eb7df-4bbc-4634-bbb3-cfabb8ceed8c" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1851598639?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "5715d096134342bc2e61b8eaa330796b", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "d6017c92-aa2e-4a8e-b80b-8037612dc811" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice304169616?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "618ebd79717f95894f84ea5dd703bc29", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "b12ac859-d478-4a2d-a4a5-79fcd8fc5936" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1765744542?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "2432281a5a7e5190f1eca993faf52e10", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", - "Server": "Microsoft-HTTPAPI/2.0", - "Vary": "Origin", - "x-ms-request-id": "adc38151-68f8-485a-aea7-4165e2148ffa" - }, - "ResponseBody": [] - }, - { - "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDevice1552665253?api-version=2020-03-13", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Authorization": "Sanitized", - "If-Match": "*", - "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", - "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" - ], - "x-ms-client-request-id": "5485d112648c245d478008be285f6a2b", - "x-ms-return-client-request-id": "true" - }, - "RequestBody": null, - "StatusCode": 204, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice998842311\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1584729345\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2096480809\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1263270320\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1255465691\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice226997166\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1851598639\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice304169616\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1765744542\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1552665253\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:11 GMT", + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "03258119-1aff-4282-b7c1-09e13b45e0bc" + "x-ms-request-id": "9c3b7f78-43e5-4866-a00b-51704bc2959c" }, - "ResponseBody": [] + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } } ], "Variables": { diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json new file mode 100644 index 0000000000000..0d63fec62ade0 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwin.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1127", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "a0a8767aad36092c89a4efd90d4b6054", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1737903722\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice138812567\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1528604451\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1636663748\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice190630551\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2098130976\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice107211793\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1670511691\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1852498269\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice620488212\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "e721e419-60e4-4594-bb60-744f69f1cdcd" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "517", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4b0010482405ee3f03a52e11957f1609", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1737903722\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice138812567\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1528604451\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1636663748\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice190630551\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2098130976\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice107211793\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1670511691\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1852498269\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice620488212\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1eac69f8-e378-4ae0-8160-afb11e3a591e" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1510665433" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json new file mode 100644 index 0000000000000..7c3107e21dde7 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceAndTwinAsync.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1128", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "829ca71f75dbb3a0a03d48d071930fbe", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1338090783\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice389291320\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1598712121\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice578243171\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1703406721\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2116149212\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice1693220262\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2126740217\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice2052518605\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDevice960026760\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d8497bc2-48c4-45bc-9b56-5ecfc3f0255c" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "518", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "e345b75e3bf95fa94ab0f0b32448b8a8", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1338090783\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice389291320\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1598712121\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice578243171\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1703406721\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2116149212\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1693220262\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2126740217\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2052518605\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice960026760\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:10:59 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "fb4a3f9d-a719-4376-b591-daa5ba42c260" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "227790136" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json new file mode 100644 index 0000000000000..fa19048e9954a --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwin.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1208", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "875ed205039de7b451ff62595a608e6e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1915046491\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1548345080\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1368015331\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin724082543\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1651475638\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1192587400\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin238949849\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090864498\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090973664\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin816809052\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "ce4f2a2f-994f-4ddb-9991-2d130de84105" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "598", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "649555755edfd82482020215dac923fe", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1915046491\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1548345080\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1368015331\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin724082543\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1651475638\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1192587400\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin238949849\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090864498\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1090973664\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin816809052\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "4f79d680-6fb2-4305-b6fa-f84ff91e7a74" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1723376107" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json new file mode 100644 index 0000000000000..0950a5e7c2511 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_BulkCreation_DeviceWithTwinAsync.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1203", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "262b663141f7dc795fcdd48033cbe9eb", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin2016627213\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin28574869\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1125850256\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1590234287\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1972326100\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin156242462\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin222240310\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin10491333\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1157928477\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "040c784c-e775-43d0-aee6-a699830a02c4" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "593", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "68c58e1044dd5d5b354b9a37d58e2e14", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin2016627213\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin28574869\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1125850256\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1590234287\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1972326100\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin156242462\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin222240310\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin10491333\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1157928477\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:15:40 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1cd2e2c2-2b8f-4a4e-bf3e-848551398996" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "194539023" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json index 22aac8c745989..39b953639fc3d 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycle.json @@ -8,7 +8,7 @@ "Content-Length": "47", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "353676c2bf306c4344a5ed1868085bf7", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "616", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022Mzg4MzQxMDY5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d5f51788-a909-40fe-bc97-a51d599329d9" + "x-ms-request-id": "a940129e-84d5-495f-b564-0daeea464d15" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ1", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDY5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "bbf4d14508f2e11c432ecb0216e2e994", @@ -71,16 +71,16 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022Mjg5NDc3NDQ1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022Mzg4MzQxMDY5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "666634bd-7c66-4e25-91c4-cdd677491dcc" + "x-ms-request-id": "4d6a3784-b655-4ea2-b2c2-6635ee552a9d" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ1", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDY5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -90,8 +90,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -109,11 +109,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.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "86c4e09d83e11f2c99945dd7664c45ba", @@ -121,8 +121,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ1", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDY5", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -131,8 +131,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": {}, "type": "sas" @@ -145,27 +145,27 @@ "ResponseHeaders": { "Content-Length": "628", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022Mjg5NDc3NDQ2\u0022", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "ETag": "\u0022Mzg4MzQxMDcw\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a96d0c4a-1f2e-4847-87fe-cd06a097d025" + "x-ms-request-id": "65f78294-018a-49f6-b90f-ae217b49866f" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice366387633", - "generationId": "637286400801413847", - "etag": "Mjg5NDc3NDQ2", + "generationId": "637287005287985090", + "etag": "Mzg4MzQxMDcw", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T00:01:20.2036247Z", + "statusUpdatedTime": "2020-06-25T16:48:48.8745725Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "YeQ0Y4VZ/2TMPZHvq9dwx/x8H9f1wQ3UG6F2bH2RkV4=", - "secondaryKey": "TZbyU9PmZBvpdSn49LOeDSUIG3R5f2tQFkmOicvcXsg=" + "primaryKey": "6VbpJpfu/aWAH0/5Y2jZedKMTZsX0JX7GoZc5JmbbHc=", + "secondaryKey": "7oRPdm0KpplwG8Vz4s09rbQrukiiY8Ih\u002B1yAgDDWw4E=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -185,7 +185,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d3264503d003babe5954f101f3415661", @@ -195,10 +195,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "9b5083f8-5f24-42fe-a146-dd1644b90114" + "x-ms-request-id": "d34c315c-2c2c-46f2-b06f-455387281288" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json index 071f590de12c7..df056f7772fe6 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_IdentityLifecycleAsync.json @@ -8,7 +8,7 @@ "Content-Length": "48", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "8416cad6f82389f8c0ea714d5c3787cf", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "617", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022NzY3NjQxOTE5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a8d00cb8-53b6-4bf9-a31a-b7a1069db640" + "x-ms-request-id": "ce7150c7-4f5b-4b86-a465-4b76af9bdc16" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk1", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTE5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4b23ea189b9f6ed44e7181aa040503db", @@ -71,16 +71,16 @@ "ResponseHeaders": { "Content-Length": "620", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022MzA1ODIwNTk1\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022NzY3NjQxOTE5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "09c8dc4f-0384-4c66-ba47-a1b73efc4d83" + "x-ms-request-id": "2a4a632b-7d75-471a-9391-c72e185c39c5" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk1", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTE5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -90,8 +90,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -113,7 +113,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "3dbd90ffc32446823f2a0ea6825fe857", @@ -121,8 +121,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk1", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTE5", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -131,8 +131,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": {}, "type": "sas" @@ -145,27 +145,27 @@ "ResponseHeaders": { "Content-Length": "629", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022MzA1ODIwNTk2\u0022", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", + "ETag": "\u0022NzY3NjQxOTIw\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c8957737-64ee-4b91-8f5e-b39dc38c7676" + "x-ms-request-id": "8f6b995b-4281-47b8-9822-0f8ef640e6b4" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice1735298060", - "generationId": "637286400800035428", - "etag": "MzA1ODIwNTk2", + "generationId": "637287005287859624", + "etag": "NzY3NjQxOTIw", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T00:01:20.0731498Z", + "statusUpdatedTime": "2020-06-25T16:48:48.8538466Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "pM0U7x5hX5xYh5XZSmPUsy/ofc/ULouk3Oq7f5PSDlg=", - "secondaryKey": "5wY/AhBoZRyBXeyiS26JEwZYWHTg0fIzfpCRiAzm0tU=" + "primaryKey": "gxBkE09ObbP7nEcMlPV7VX/IvUZzuJkWy069FTd7lzA=", + "secondaryKey": "1C/G6kW47t1nMKlWJXyCR2MupAiqcCplI779FAlJ5IA=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -185,7 +185,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "4c4c798cbc313a6df5a735b1764d85bb", @@ -195,10 +195,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:47 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "9f5fe2c2-1565-429d-bc12-c34248eb1413" + "x-ms-request-id": "19ee4ec1-3f9c-4521-a93c-dbb749baad9c" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json new file mode 100644 index 0000000000000..3e5e6d9240c24 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwins.json @@ -0,0 +1,184 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "706", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "60a42da6ce2f020439309ae22c135974", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1611949012\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice968761103\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1147610648\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice647774619\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1861405137\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice795411845\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1391594436\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice864736061\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1564126165\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice376399344\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d3213fab-c133-4d20-a29f-2254f18fe8fe" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "984cca8b279c0e88283ad7429bfef3c3", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "1275", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "866b20c2-82f6-4a68-9f08-7d54cc42476f" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTEwODUxNzQ4\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-25T16:48:48.5635223Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3c27be0170f54cb6b2e09e3124f2e305", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "2329", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "0fb2171d-ed36-407c-9e8e-39d320014b34" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "faf95d423df17f53a49637f5f7c2673b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "7554", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "1fb8f043-2db9-4ef1-9abf-f29b27e98b7f" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "6ee0d63d1ceb1a7e13ffe5bc8857e935", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "9881", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "d625264a-9a6b-4e6a-be6d-b27667fdecb7" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice313004596\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1747464824\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1391594436\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjIyNzY5MTI4\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-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1611949012\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "516", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3e00d156f804c4d26aa8985f38c155f0", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1611949012\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice968761103\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1147610648\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice647774619\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1861405137\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice795411845\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1391594436\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice864736061\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1564126165\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice376399344\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "7a0ca9b9-7020-4392-9d52-23ef49098b41" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1817368407" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.json new file mode 100644 index 0000000000000..e39fe75246dd4 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_Query_GetTwinsAsync.json @@ -0,0 +1,213 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "707", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b9836a3efb2a51af60743d51f6363ee6", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1232289385\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1057393154\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1646301749\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1971129326\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice300040522\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1747464824\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice328522009\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice828070789\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2104688387\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice313004596\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "3add6ea3-9772-46ac-b449-d26235f3cf02" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "02fad690a9018ae76ef3e535b2e36ab9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "1275", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "e73bd2ed-fef6-4f38-8fa1-9d5b1f3602ad" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin43230407\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTEwODUxNzQ4\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-25T16:48:48.5635223Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5ff1a402ec26a549423f89de14180cff", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "2329", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "c42d048f-d3b0-46b6-ba28-0755f201d797" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "42e763b0018a953383f94b3616799f7c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "7558", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "c405ccca-35eb-4fdf-a83a-340c95266243" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1428671928\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODEyNjE1MA==\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-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.4510911Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "514e830ade45a4c08d55bfc11f087656", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "9300", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:48 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "f47febee-c54b-439f-ac9d-2244fdb9485b" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice313004596\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1391594436\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjIyNzY5MTI4\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-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1611949012\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4e85e6e628fb002f715bdb2ca1128fc8", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "11626", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "1b0eb5af-002f-413c-a183-a7a2f6cb98ce" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice313004596\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice795411845\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice647774619\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1747464824\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDAxMDQxOTM5\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-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9505388Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice376399344\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM0NTExNjQw\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-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9504046Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1564126165\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1391594436\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjIyNzY5MTI4\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-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9541005Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1611949012\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1646301749\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTI2OTg0NzE0\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-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9547804Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice300040522\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxMzA3ODU2MQ==\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-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9509753Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1971129326\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328522009\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2104688387\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1147610648\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODE3MjEzNTU1\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-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9558646Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1232289385\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA1ODU1MzE1Mg==\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-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9587763Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice968761103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2ODkzMzMxNA==\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-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9495633Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice828070789\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODU3OTA4MzAz\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-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9482Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1861405137\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjk1MTI0ODQ3\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-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9601641Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1057393154\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODM5Nzg3MzM0\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-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9511054Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice864736061\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk2MTQ5NTM=\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-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T16:48:48.9548506Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "517", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "90d40ca0bac9d1b9a343b4354171757b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1232289385\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1057393154\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1646301749\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1971129326\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice300040522\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1747464824\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice328522009\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice828070789\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2104688387\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice313004596\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "fa0a7ea2-6857-4632-90f3-50dc16208b25" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "35556485" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json index 171322557b9ec..0ec7455ac8d41 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycle.json @@ -8,7 +8,7 @@ "Content-Length": "43", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "41fe598c33bb1a5a76adbe759995195f", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "612", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", - "ETag": "\u0022OTg3NjcxNzUz\u0022", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", + "ETag": "\u0022NTczMjIwMjc=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c5384c54-bf3a-47af-9ee1-f0c86adf2620" + "x-ms-request-id": "f4eabd25-558d-472e-866d-9960118614ce" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice733357959", - "generationId": "637286400803292455", - "etag": "OTg3NjcxNzUz", + "generationId": "637287005299245791", + "etag": "NTczMjIwMjc=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "M7RPBF\u002Bqgu123EjTFeh19cH88gJeX/fJBGggGDflASI=", - "secondaryKey": "cJysO4Q1HNHFm0b2vEz1dAUI6vp2/hEe1RQEU5rzy7c=" + "primaryKey": "ayhPzYnlK260Y3YMD97d1dF/B/hFTTsUr02dDmmDL9Y=", + "secondaryKey": "GMpCFt\u002Bb9DG2dU/4ksxL0vI4cRqD2Abxv\u002BWkJ/8iMo8=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "cde3fabc3d0b4d66685e7d34128d8cc9", @@ -71,15 +71,15 @@ "ResponseHeaders": { "Content-Length": "588", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c6452cfc-7250-46dc-90dd-3c899b0b04db" + "x-ms-request-id": "bd9cddc7-b1d7-4cd5-b15c-4a222b70d8b1" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice733357959", "etag": "AAAAAAAAAAE=", - "deviceEtag": "OTg3NjcxNzUz", + "deviceEtag": "NTczMjIwMjc=", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -94,13 +94,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 } @@ -119,7 +119,7 @@ "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d6c5f0d9acbf2a7d7d6fbf4abe14a313", @@ -130,21 +130,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "OTg3NjcxNzUz", + "deviceEtag": "NTczMjIwMjc=", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -160,15 +160,15 @@ "ResponseHeaders": { "Content-Length": "714", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6147beec-aa92-469a-acd5-591d545b26c2" + "x-ms-request-id": "62d3a82d-2c3b-48cd-a5bf-6d75e4c8e4d0" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice733357959", "etag": "AAAAAAAAAAI=", - "deviceEtag": "OTg3NjcxNzUz", + "deviceEtag": "NTczMjIwMjc=", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -184,10 +184,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdated": "2020-06-25T16:48:49.9871097Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-25T00:01:20.3761136Z", + "$lastUpdated": "2020-06-25T16:48:49.9871097Z", "$lastUpdatedVersion": 2 } }, @@ -195,7 +195,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.3292455Z" + "$lastUpdated": "2020-06-25T16:48:49.9245791Z" }, "$version": 1 } @@ -212,7 +212,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "fac5c131404e4e7bf3b0d85db62608e9", @@ -222,10 +222,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:19 GMT", + "Date": "Thu, 25 Jun 2020 16:48:49 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "4d9f76fe-cf1e-43ac-8b15-787ecb36f78c" + "x-ms-request-id": "c9d71b4d-62da-4233-bbe9-b79fcc94799c" }, "ResponseBody": [] } diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json index 80b5312e08b1a..4222389491944 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/Devices_TwinLifecycleAsync.json @@ -8,7 +8,7 @@ "Content-Length": "43", "Content-Type": "application/json", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "193795b30f7fcba90d0253fbb706745e", @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "612", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", - "ETag": "\u0022NDQ5MDI4MTA4\u0022", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", + "ETag": "\u0022MzY0MDgxMzg5\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6f5b7ed3-cba6-47b4-9417-6b0f41c7e803" + "x-ms-request-id": "1f719b8f-f2a0-42c5-86e2-e371ab91f1ea" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice646618704", - "generationId": "637286400801730300", - "etag": "NDQ5MDI4MTA4", + "generationId": "637287005302683634", + "etag": "MzY0MDgxMzg5", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "TiSH6o4dCIvDNNAWxjn8Ehg70FFtsYFFRno6bY6UEFM=", - "secondaryKey": "Pf/8hqk1mqh/lMR8inQLpZAGzxdmS9ZCQTykX0UkNIA=" + "primaryKey": "1AbDEkc5xz1u0qXO8lKrMII1Ya4IKbH\u002BbKWAsx6djAs=", + "secondaryKey": "IPNJTsWLCOpvyrKCpnwdXs6O8dqFFA1GPBnKfq46xQM=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -60,7 +60,7 @@ "RequestHeaders": { "Authorization": "Sanitized", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "5428891cd5c1bce8e94087a49be23893", @@ -69,17 +69,17 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "584", + "Content-Length": "588", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "5af01a92-11c1-4a1e-b144-cad257170084" + "x-ms-request-id": "d5d9f078-6b23-4ebe-b53f-ccbdcca900b7" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice646618704", "etag": "AAAAAAAAAAE=", - "deviceEtag": "NDQ5MDI4MTA4", + "deviceEtag": "MzY0MDgxMzg5", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -94,13 +94,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 } @@ -115,11 +115,11 @@ "RequestMethod": "PATCH", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "568", + "Content-Length": "572", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "17a23195a39ce5a3e5feddb4354d8bf4", @@ -130,21 +130,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "NDQ5MDI4MTA4", + "deviceEtag": "MzY0MDgxMzg5", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -158,17 +158,17 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "712", + "Content-Length": "714", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d753cd9b-2939-47f6-aef8-b9345a3f73f1" + "x-ms-request-id": "96c7fc37-6e5e-4ce0-a19c-cd804c37f7f5" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice646618704", "etag": "AAAAAAAAAAI=", - "deviceEtag": "NDQ5MDI4MTA4", + "deviceEtag": "MzY0MDgxMzg5", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -184,10 +184,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdated": "2020-06-25T16:48:50.3308382Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-25T00:01:20.2355124Z", + "$lastUpdated": "2020-06-25T16:48:50.3308382Z", "$lastUpdatedVersion": 2 } }, @@ -195,7 +195,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T00:01:20.17303Z" + "$lastUpdated": "2020-06-25T16:48:50.2683634Z" }, "$version": 1 } @@ -212,7 +212,7 @@ "Authorization": "Sanitized", "If-Match": "*", "User-Agent": [ - "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200624.1", + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" ], "x-ms-client-request-id": "d8c878c00ec7dd8fac7b303f88042f2b", @@ -222,10 +222,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 00:01:20 GMT", + "Date": "Thu, 25 Jun 2020 16:48:50 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c20d6626-6765-40be-9554-7c2ce3375d92" + "x-ms-request-id": "9c1448ba-9ee5-448e-b868-d25efdbf6377" }, "ResponseBody": [] } From 13c2f5c2678ce9de37404894bed073b304744dc3 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Thu, 25 Jun 2020 14:21:21 -0700 Subject: [PATCH 10/12] Update DevicesClientTests.cs --- .../tests/DevicesClientTests.cs | 118 ++++++++++++++---- 1 file changed, 95 insertions(+), 23 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 743716b4084e8..984488b638c16 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -11,10 +11,17 @@ namespace Azure.Iot.Hub.Service.Tests { + /// + /// Test all APIs of a DeviceClient. + /// + /// + /// All API calls are wrapped in a try catch block so we can clean up resources regardless of the test outcome. + /// public class DevicesClientTests : E2eTestBase { private const int BULK_DEVICE_COUNT = 10; - private TimeSpan QUERY_RETRY_LIMIT = TimeSpan.FromSeconds(10); + private readonly TimeSpan _queryMaxWaitTime = TimeSpan.FromSeconds(30); + private readonly TimeSpan _queryRetryInterval = TimeSpan.FromSeconds(2); public DevicesClientTests(bool isAsync) : base(isAsync) @@ -26,15 +33,13 @@ public DevicesClientTests(bool isAsync) /// This test includes CRUD operations only. /// [Test] - public async Task Devices_IdentityLifecycle() + public async Task DevicesClient_IdentityLifecycle() { string testDeviceName = $"IdentityLifecycleDevice{GetRandom()}"; DeviceIdentity device = null; - IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create a device @@ -75,7 +80,7 @@ public async Task Devices_IdentityLifecycle() /// Test basic operations of a Device Twin. /// [Test] - public async Task Devices_TwinLifecycle() + public async Task DevicesClient_DeviceTwinLifecycle() { string testDeviceName = $"TwinLifecycleDevice{GetRandom()}"; @@ -83,7 +88,6 @@ public async Task Devices_TwinLifecycle() IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create a device @@ -126,7 +130,7 @@ public async Task Devices_TwinLifecycle() /// In this test we create multiple brand new devices and expect them all to be created with no issues. /// [Test] - public async Task Devices_BulkCreation() + public async Task DevicesClient_BulkCreation() { string testDeviceprefix = $"bulkDevice"; @@ -134,7 +138,6 @@ public async Task Devices_BulkCreation() IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create all devices @@ -149,12 +152,70 @@ public async Task Devices_BulkCreation() } /// - /// Test bulk Device creation. - /// All but one devices are going to be brand new. One device alreadyExists. + /// Test bulk Device update. + /// In this test we create multiple brand new devices and expect them all to be created with no issues. + /// + [Test] + public async Task DevicesClient_BulkUpdate() + { + string testDeviceprefix = $"bulkDeviceUpdate"; + + IoTHubServiceClient client = GetClient(); + IList listOfDevicesToUpdate = null; + + try + { + // Create two devices + Response deviceOneCeateResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new DeviceIdentity + { + DeviceId = $"{testDeviceprefix}{GetRandom()}", + Status = DeviceStatus.Enabled, + }).ConfigureAwait(false); + + Response deviceTwoCeateResponse = await client.Devices.CreateOrUpdateIdentityAsync( + new DeviceIdentity + { + DeviceId = $"{testDeviceprefix}{GetRandom()}", + Status = DeviceStatus.Enabled, + }).ConfigureAwait(false); + + DeviceIdentity deviceOne = deviceOneCeateResponse.Value; + DeviceIdentity deviceTwo = deviceTwoCeateResponse.Value; + + listOfDevicesToUpdate = new List { deviceOne, deviceTwo }; + + // Update device status to disabled. + deviceOne.Status = DeviceStatus.Disabled; + deviceTwo.Status = DeviceStatus.Disabled; + + // Make the API call to disable devices. + Response updateResponse = + await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.Unconditional) + .ConfigureAwait(false); + + Assert.IsTrue(updateResponse.Value.IsSuccessful, "Bulk device update must be successful"); + + // Verify the devices status is updated. + deviceOne = (await client.Devices.GetIdentityAsync(deviceOne.DeviceId)).Value; + deviceTwo = (await client.Devices.GetIdentityAsync(deviceTwo.DeviceId)).Value; + + deviceOne.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); + deviceTwo.Status.Should().Be(DeviceStatus.Disabled, "Device should have been disabled"); + } + finally + { + await Cleanup(client, listOfDevicesToUpdate); + } + } + + /// + /// Test bulk Device creation with an expected error. + /// All but one devices are going to be brand new. One device already exists and we expect an error regarding that specific device. /// [Test] [Ignore("DeviceRegistryOperationError cannot be parsed since service sends integer instead of a string")] - public async Task Devices_BulkCreation_OneAlreadyExists() + public async Task DevicesClient_BulkCreation_OneAlreadyExists() { string testDeviceprefix = $"bulkDevice"; string existingDeviceName = $"{testDeviceprefix}{GetRandom()}"; @@ -162,7 +223,6 @@ public async Task Devices_BulkCreation_OneAlreadyExists() IoTHubServiceClient client = GetClient(); IList devices = BuildMultipleDevices(testDeviceprefix, BULK_DEVICE_COUNT-1); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // We first create a single device. @@ -186,27 +246,33 @@ public async Task Devices_BulkCreation_OneAlreadyExists() /// Test bulk device and twin creation. /// [Test] - public async Task Devices_BulkCreation_DeviceWithTwin() + public async Task DevicesClient_BulkCreation_DeviceWithTwin() { string testDeviceprefix = $"bulkDeviceWithTwin"; + string userPropertyName = "user"; + string userPropertyValue = "userA"; IoTHubServiceClient client = GetClient(); IDictionary desiredProperties = new Dictionary { - { "user", "userA" } + { userPropertyName, userPropertyValue } }; // We will build multiple devices and all of them with the same desired properties for convenience. IDictionary devicesAndTwins = BuildDevicesAndTwins(testDeviceprefix, BULK_DEVICE_COUNT, desiredProperties); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create all devices with twins Response createResponse = await client.Devices.CreateIdentitiesWithTwinAsync(devicesAndTwins).ConfigureAwait(false); - Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation ended with an error"); + + // Verify that the desired properties were set + // For quicker test run, we will only verify the first device on the list. + Response getResponse = await client.Devices.GetTwinAsync(devicesAndTwins.Keys.First().DeviceId).ConfigureAwait(false); + getResponse.Value.Properties.Desired[userPropertyName].Should().Be(userPropertyValue); } finally { @@ -216,9 +282,11 @@ public async Task Devices_BulkCreation_DeviceWithTwin() /// /// Test query by getting all twins. + /// For the purpose of this test, we will create multiple devices (and device twins as a byproduct) + /// and list all twins and verify the query returns everything expected. /// [Test] - public async Task Devices_Query_GetTwins() + public async Task DevicesClient_Query_GetTwins() { string testDeviceprefix = $"bulkDevice"; @@ -226,7 +294,6 @@ public async Task Devices_Query_GetTwins() IoTHubServiceClient client = GetClient(); - // Wrap all the operations in a try block to be able to cleanup in case of any failure. try { // Create all devices @@ -238,9 +305,7 @@ public async Task Devices_Query_GetTwins() int matchesFound = 0; DateTimeOffset startTime = DateTime.UtcNow; - while ( - matchesFound != BULK_DEVICE_COUNT - && DateTime.UtcNow - startTime < QUERY_RETRY_LIMIT) + while (DateTime.UtcNow - startTime < _queryMaxWaitTime) { matchesFound = 0; AsyncPageable twins = client.Devices.GetTwinsAsync(); @@ -253,9 +318,16 @@ public async Task Devices_Query_GetTwins() matchesFound++; } } + + if (matchesFound == BULK_DEVICE_COUNT) + { + break; + } + + await Task.Delay(_queryRetryInterval); } - matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to count of recently created devices."); + matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to the number of recently created devices."); } finally { @@ -292,7 +364,7 @@ private async Task Cleanup(IoTHubServiceClient client, IEnumerable Date: Thu, 25 Jun 2020 14:22:51 -0700 Subject: [PATCH 11/12] Update session recordings. --- .../DevicesClient_BulkCreation.json | 68 +++++ .../DevicesClient_BulkCreationAsync.json | 68 +++++ ...cesClient_BulkCreation_DeviceWithTwin.json | 130 ++++++++ ...ient_BulkCreation_DeviceWithTwinAsync.json | 130 ++++++++ .../DevicesClient_BulkUpdate.json | 278 ++++++++++++++++++ .../DevicesClient_BulkUpdateAsync.json | 278 ++++++++++++++++++ .../DevicesClient_DeviceTwinLifecycle.json | 237 +++++++++++++++ ...evicesClient_DeviceTwinLifecycleAsync.json | 237 +++++++++++++++ .../DevicesClient_IdentityLifecycle.json | 210 +++++++++++++ .../DevicesClient_IdentityLifecycleAsync.json | 210 +++++++++++++ .../DevicesClient_Query_GetTwins.json | 126 ++++++++ .../DevicesClient_Query_GetTwinsAsync.json | 126 ++++++++ .../DevicesClient_TwinLifecycle.json | 237 +++++++++++++++ .../DevicesClient_TwinLifecycleAsync.json | 237 +++++++++++++++ 14 files changed, 2572 insertions(+) create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json create mode 100644 sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json new file mode 100644 index 0000000000000..526d0c42ee520 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "707", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "68a9862b6fe1c8667b76d3578e777e8c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1844682632\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1906449662\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1733031113\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice637195989\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1141385218\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1110488769\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1931346325\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice14932813\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice264422303\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1886844162\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:26 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "cb7a98b5-7621-4f91-b5ff-83d79f5628ab" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "517", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "20389682a9ef48e296e526551fbf96dc", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice1844682632\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1906449662\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1733031113\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice637195989\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1141385218\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1110488769\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1931346325\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice14932813\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice264422303\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1886844162\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:26 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a88be6fb-67be-4117-a3d9-268a17b67daa" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2047780100" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json new file mode 100644 index 0000000000000..93b4bd052fe9a --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreationAsync.json @@ -0,0 +1,68 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "708", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "9f33bfd1984e65aa214cc06ebe4fd602", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice938981638\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1190250327\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice238727890\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1980223866\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1695855564\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice933442212\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1580180749\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1677797952\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1118348821\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1591157015\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:27 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "56fa4eee-d8ee-4940-af06-a8b30f5bdfd1" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "518", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "61705aa6c9323eebf30deb08764510bf", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice938981638\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1190250327\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice238727890\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1980223866\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1695855564\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice933442212\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1580180749\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1677797952\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1118348821\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1591157015\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:22:27 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "04a4c7cf-ffb8-4d86-877d-4a5bbbab0079" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "846779539" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..c480cdc280715 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwin.json @@ -0,0 +1,130 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1204", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "7016712d2594db6f1014befd36d0ff37", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1109223729\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin424129578\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1008012596\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin275442662\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin30389356\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin715021882\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1778863504\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin678975368\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin409277462\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:33 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "00387c70-c353-431c-9cc4-f9ee8dbd6dae" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/bulkDeviceWithTwin1109223729?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8f73cdcfa527500eb6b9e2f677fe22e6", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "690", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:33 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d9e07d35-aac3-479a-8c93-181d894e3fe6" + }, + "ResponseBody": { + "deviceId": "bulkDeviceWithTwin1109223729", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "MzExNDk5OTY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "user": "userA", + "$metadata": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1, + "user": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1 + } + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.2986318Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "594", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d533497f83be7a264a2956613633f386", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin1109223729\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin424129578\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1008012596\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin275442662\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin30389356\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin715021882\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1778863504\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin678975368\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin409277462\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "5288df20-a7d9-43d5-89b3-4b679aecdbbc" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1405471046" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..76d0f4ced95ac --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkCreation_DeviceWithTwinAsync.json @@ -0,0 +1,130 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "1205", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d568f5c8e57529c1e029374b1c53010a", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin304767959\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin655299890\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1439309114\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1676140744\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin369166372\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin782746723\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin854489741\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin1377918686\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}},{\u0022id\u0022:\u0022bulkDeviceWithTwin577916315\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022,\u0022properties\u0022:{\u0022desired\u0022:{\u0022user\u0022:\u0022userA\u0022}}}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "761fc800-2344-40f1-b663-0ec8f7dd7cc0" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/bulkDeviceWithTwin304767959?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f08737db3f531255a2c51ba6431d0eda", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "689", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "47928cbf-2842-46cf-991d-69e2fdf2b6ea" + }, + "ResponseBody": { + "deviceId": "bulkDeviceWithTwin304767959", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "MzExNDk5OTY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "user": "userA", + "$metadata": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1, + "user": { + "$lastUpdated": "0001-01-01T00:00:00Z", + "$lastUpdatedVersion": 1 + } + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.2986318Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "595", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "e4bdc527c97c715eedadb728278b8cde", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceWithTwin304767959\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin655299890\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1439309114\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1676140744\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin369166372\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin782746723\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin854489741\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin1377918686\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceWithTwin577916315\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "0366bf7b-e5f6-435f-8192-7fa599fc71e3" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "999894705" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..09db1f1cf26b7 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdate.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate2058308758?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "60", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "641381e4f4e82e72fdd64d15ec9f16ee", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate2058308758", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "610", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mjc3MjE5MDI4\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a0d75c9a-d6af-4843-a4e8-21d14b7aa56b" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate2058308758", + "generationId": "637287169544809632", + "etag": "Mjc3MjE5MDI4", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "/L5S3iGL99oUzG\u002BGFOahlPxPMAroP22Ae\u002BRVOOmkXD4=", + "secondaryKey": "UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1689940095?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "60", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3e1134d9471886feac1982596376afac", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate1689940095", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "610", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzcwODU0OTA1\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "a01aad72-4eab-405f-aabe-ce1dee32f60d" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1689940095", + "generationId": "637287169545434847", + "etag": "MzcwODU0OTA1", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=", + "secondaryKey": "8HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "659", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022Mjc3MjE5MDI4\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022/L5S3iGL99oUzG\\u002BGFOahlPxPMAroP22Ae\\u002BRVOOmkXD4=\u0022,\u0022secondaryKey\u0022:\u0022UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MzcwODU0OTA1\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=\u0022,\u0022secondaryKey\u0022:\u00228HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=\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": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "00590d13-ba6c-4714-a350-b1ffd77db9ca" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate2058308758?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c655ea9f58983acb15de3cdaefd49a5f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "621", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mjc3MjE5MDI5\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "7a2c4a37-4119-4efc-827e-2b93d676778a" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate2058308758", + "generationId": "637287169544809632", + "etag": "Mjc3MjE5MDI5", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.569219Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "/L5S3iGL99oUzG\u002BGFOahlPxPMAroP22Ae\u002BRVOOmkXD4=", + "secondaryKey": "UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1689940095?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b407689dbed608ed95262e31f6aed0e3", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "621", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzcwODU0OTA2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c605cb5b-ca8c-4c35-9da0-e52c011080e9" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1689940095", + "generationId": "637287169545434847", + "etag": "MzcwODU0OTA2", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.569219Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=", + "secondaryKey": "8HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "161", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022Mjc3MjE5MDI4\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MzcwODU0OTA1\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "959840c2-c3a6-48ab-90e3-6a2498c272a3" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1759351927" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..50594fa9062d2 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_BulkUpdateAsync.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1349701714?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "60", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "696cb7b4ddffbd7be581104269a73535", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate1349701714", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "610", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTQwMTIxNjEy\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "61b13217-4be8-4c12-a596-1c4b826d60ac" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1349701714", + "generationId": "637287169544390014", + "etag": "OTQwMTIxNjEy", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "rx9oEiFRxG/Kha9kOkjBQt7on6KE\u002BzAkPoYzr42Gu8k=", + "secondaryKey": "qgcW3WJd8mNrgOt09vevxVES\u002B08LhNrN40/7PKKKq6s=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate927166103?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "59", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "444f2432b2d486afabaae9f7b0a743fd", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "bulkDeviceUpdate927166103", + "status": "enabled" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "609", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTg1NTIwODM2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "ed82efe8-825e-49b6-9e90-955ef83feae8" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate927166103", + "generationId": "637287169545041039", + "etag": "OTg1NTIwODM2", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\u002Bh2Bhh\u002Bs=", + "secondaryKey": "ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\u002Bim\u002B5/Hmw=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "678", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022OTQwMTIxNjEy\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022rx9oEiFRxG/Kha9kOkjBQt7on6KE\\u002BzAkPoYzr42Gu8k=\u0022,\u0022secondaryKey\u0022:\u0022qgcW3WJd8mNrgOt09vevxVES\\u002B08LhNrN40/7PKKKq6s=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022OTg1NTIwODM2\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\\u002Bh2Bhh\\u002Bs=\u0022,\u0022secondaryKey\u0022:\u0022ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\\u002Bim\\u002B5/Hmw=\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": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "dc154fb6-d9c8-4414-8979-868378ba7b10" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate1349701714?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "cfdd23170e7505e0bde3543291c635d9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "622", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTQwMTIxNjEz\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "0a6453a5-935b-4c55-8010-c04ebd1b3412" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate1349701714", + "generationId": "637287169544390014", + "etag": "OTQwMTIxNjEz", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.5360869Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "rx9oEiFRxG/Kha9kOkjBQt7on6KE\u002BzAkPoYzr42Gu8k=", + "secondaryKey": "qgcW3WJd8mNrgOt09vevxVES\u002B08LhNrN40/7PKKKq6s=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/bulkDeviceUpdate927166103?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b5eb45cc8a107ad301cb9542b127dadc", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "621", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022OTg1NTIwODM3\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1a7080c8-2e94-4b2d-aa90-016448aed58d" + }, + "ResponseBody": { + "deviceId": "bulkDeviceUpdate927166103", + "generationId": "637287169545041039", + "etag": "OTg1NTIwODM3", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.5454894Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\u002Bh2Bhh\u002Bs=", + "secondaryKey": "ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\u002Bim\u002B5/Hmw=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "160", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.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:\u0022OTQwMTIxNjEy\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022OTg1NTIwODM2\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6d182928-1b07-49fd-8014-61debe6fa481" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1394828034" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..03a1fd107790f --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycle.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "42", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "3fc573c466686001c7ff41343a27d538", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice10350067" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "611", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022NjY5NTY0OTg0\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1090e6ab-4a9b-4910-bc3e-6a47d2398ac7" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice10350067", + "generationId": "637287169547069383", + "etag": "NjY5NTY0OTg0", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "UeMU/JbG3nbrdaiYdrUPE/CX03LLry6R\u002BDmTaR\u002BqQbA=", + "secondaryKey": "MFGZY/Pv8AzzUvh2GVT7B9lbgr4eUyLEPUJ8\u002BdOHdA8=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4f613570030fbaa6d05fd462b2f0447b", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f5088b7a-2c4d-4772-8888-363f0f5858c2" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice10350067", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NjY5NTY0OTg0", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "571", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "4d3853d2c77fbf38574891f935937306", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice10350067", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NjY5NTY0OTg0", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "709", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "1120f2d3-58b1-4b9f-a45f-024955fe3224" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice10350067", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NjY5NTY0OTg0", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.76955Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T21:22:34.76955Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice10350067?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "9457a6e0d26ac1e3cc0a6f09929fadd7", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f78011aa-07d8-4003-8f25-07cf1fcc1f52" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "690979027" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..f06fa9645a1a2 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_DeviceTwinLifecycleAsync.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "44", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c3bc58b2d82a3592661c46c19a024a43", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice2112406490" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "613", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022NDEzNzI4MjY2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "9825ff00-3534-49d2-ab34-fada7e6029c3" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "generationId": "637287169546884392", + "etag": "NDEzNzI4MjY2", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "gLClG\u002BOAi/o8lq4khlCqxcSuhP3uoY5RNAZjGLpqFss=", + "secondaryKey": "B2rgJLE4i8zMI/A\u002Bar\u002BOM5gV/1KEP8lLpAxQP3wqYJg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "efc06b49465dda0c6b59baccfc4f1b6e", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "589", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "c1d7d3b0-9bb2-41fc-a87a-342754abae05" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NDEzNzI4MjY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "573", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "1d90e307d990685bba77ea75fd6c11c9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NDEzNzI4MjY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "715", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "24a5f07f-6cb7-47f7-b9a3-64767b76e76c" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice2112406490", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NDEzNzI4MjY2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.7509423Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T21:22:34.7509423Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice2112406490?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "89f2853940dc6b7d4ce258d01dc53816", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d2699661-0472-48e5-8888-7e9f9fec2f60" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1067398702" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..424011efa9fb3 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycle.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "47", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "5679c9bcad546a8756dc203fa49513a9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice726366390" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "616", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzUyNDgyOTcy\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "8a531da8-b4f3-4a1f-9823-0f5968fcbe63" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcy", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2bc871c8a62a1c75c0206b5953bf15b9", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "619", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzUyNDgyOTcy\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f800787e-26dc-4d01-ad86-91085c36383a" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcy", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "588", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "33602e35d25224b76c1cf1bfa4037156", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcy", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022MzUyNDgyOTcz\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d3040bee-ed96-4cd5-8d3d-205a6408ba78" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice726366390", + "generationId": "637287169548767689", + "etag": "MzUyNDgyOTcz", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.9249407Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", + "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice726366390?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "a2545d0ae9c8158c545c9633412e1796", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "ed859d98-6b40-4ae8-834d-2f4ea0df3355" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "347912009" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..a7fcc305175dd --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_IdentityLifecycleAsync.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "47", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "50a2cb3c13b3e7cbf895467b122e43c5", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice375200814" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "616", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mzk0MjI0MzIw\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "db50e682-f8a2-4ffc-9f1d-0f7ca88ef17a" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIw", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "0e1c90f63341274e96d84d07faccdc7d", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "619", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mzk0MjI0MzIw\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "35f07bea-3d93-42c7-95e0-ad46456653b0" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIw", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "0001-01-01T00:00:00Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "578", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "f1fab84acbd08c2223e4d552e945d17f", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIw", + "connectionState": "Disconnected", + "status": "disabled", + "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "statusUpdatedTime": "0001-01-01T00:00:00.0000000Z", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": {}, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "ETag": "\u0022Mzk0MjI0MzIx\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "50d45451-7e6b-46c6-8b77-9c72d4cf11f9" + }, + "ResponseBody": { + "deviceId": "IdentityLifecycleDevice375200814", + "generationId": "637287169548635058", + "etag": "Mzk0MjI0MzIx", + "connectionState": "Disconnected", + "status": "disabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", + "statusUpdatedTime": "2020-06-25T21:22:34.9245877Z", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", + "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/IdentityLifecycleDevice375200814?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "e95fc3fecb2a08ec7d7abadbc5c4ed2c", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "b40bd280-443f-4f70-ab83-d11322d3e8a8" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1984409653" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..1e241443d9828 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwins.json @@ -0,0 +1,126 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "704", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "ee5245ea8beec4801e9fa909dea51ff2", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice779703902\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2085718378\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1435339341\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice983827358\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice376255258\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice772015350\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice414684285\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1353506827\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice709993140\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice767781652\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "cbea7905-3cc1-430b-a202-8c124b066593" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "8b4854735241f9d5c7c305f99c28ab62", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "4305", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "e5bbaba9-fa3a-4d4b-8f7a-b0a00dd03993" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjY2MTQ5NTU5\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-25T21:22:34.2929707Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022IdentityLifecycleDevice726366390\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzUyNDgyOTcy\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-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQwODYwOTc3\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-25T21:22:34.2977789Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "813856edcee31cdf24ef1f1bad548ca7", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "11615", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:37 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "77d292bb-b9bf-4556-a01f-1f252e7250bb" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA4OTM1OTQw\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-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjMxNDg3NjE2\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-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc3MTI0NjQ=\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-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTMyODY3OTY1\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-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzE2MTkwMzI0\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-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTMzNzU3Mjg2\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-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzA5NDQzMjMx\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-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyNDc5MDk5\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-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "514", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "2883277f28c298d36f59272a858728f5", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice779703902\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice2085718378\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1435339341\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice983827358\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice376255258\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice772015350\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice414684285\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice1353506827\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice709993140\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDevice767781652\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:37 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "6bc49e3c-da06-45c6-9a81-392b2cc78579" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "1304827544" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000000..a89f7410feb4f --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_Query_GetTwinsAsync.json @@ -0,0 +1,126 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "708", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "7742f074e1e91f6720ab9f76689c6096", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": "[{\u0022id\u0022:\u0022bulkDevice328709140\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice2044993392\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1686270456\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice512290233\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1918934926\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1046556416\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1497828432\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1753905059\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice568420481\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022},{\u0022id\u0022:\u0022bulkDevice1904312372\u0022,\u0022importMode\u0022:\u0022create\u0022,\u0022status\u0022:\u0022enabled\u0022}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:35 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "67d20faf-9db3-45ad-8a2b-09927f6fd31a" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + }, + { + "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.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "c39e4840ff4bab1dc877bf0ac4e42245", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "query": "select * from devices" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "4305", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:35 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "e9a170cb-badc-4d9e-876c-a02ca0bfdfc0" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjY2MTQ5NTU5\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-25T21:22:34.2929707Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022IdentityLifecycleDevice726366390\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzUyNDgyOTcy\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-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQwODYwOTc3\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-25T21:22:34.2977789Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\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.20200625.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": "11615", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:36 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-item-type": "Twin", + "x-ms-request-id": "8564ffa6-80df-4499-a2ca-3ed49edb438a" + }, + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA4OTM1OTQw\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-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjMxNDg3NjE2\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-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc3MTI0NjQ=\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-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTMyODY3OTY1\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-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzE2MTkwMzI0\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-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTMzNzU3Mjg2\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-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzA5NDQzMjMx\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-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyNDc5MDk5\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-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "518", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "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}]", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "47", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 21:22:36 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "f4856c8c-0eb7-4f6e-a09c-e65dd385df3a" + }, + "ResponseBody": { + "isSuccessful": true, + "errors": [], + "warnings": [] + } + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "794071859" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json new file mode 100644 index 0000000000000..f476d8064d3dc --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycle.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "44", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "b90dbf87fc1e3053b20de86d9a150e79", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice1969231255" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "613", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "ETag": "\u0022NjQ1MTQxOTM4\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "d56d1112-dc3e-42e6-ba83-e04553d6a1d4" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "generationId": "637287135293360931", + "etag": "NjQ1MTQxOTM4", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "B3eyDnNX/pu0hVHcsYm2VbZtnIow5JZ7IhwtDr18o8g=", + "secondaryKey": "Vc2xwPPrSEGt41QUhYIlFCWit/0zz9DFdCKMtcghb4A=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "da740151b56f07ea18e4197768aba83a", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "589", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "57c43ba5-731d-4f65-b5ea-65817f0b2c98" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "NjQ1MTQxOTM4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "573", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "af0b8c3bf40a3c94c72acaa6b5d3a7c8", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "NjQ1MTQxOTM4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "715", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "89f06148-f5f4-4995-8b53-fc35ddae84f0" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice1969231255", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "NjQ1MTQxOTM4", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3829234Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T20:25:29.3829234Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3360931Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice1969231255?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "d83b4fa980a5d228d405a039e3dcc707", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "cdd0999e-f858-4e83-aad1-b0f022604a6c" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2012074449" + } +} \ No newline at end of file diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json new file mode 100644 index 0000000000000..9d179168637a8 --- /dev/null +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/SessionRecords/DevicesClientTests/DevicesClient_TwinLifecycleAsync.json @@ -0,0 +1,237 @@ +{ + "Entries": [ + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "43", + "Content-Type": "application/json", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "764bace5658c0b158b3f640a908e3c30", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice593220185" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "612", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "ETag": "\u0022Njg2ODgzMjg2\u0022", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "0d7b8e16-c1dd-4be0-8c79-060047f78aa8" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice593220185", + "generationId": "637287135293298597", + "etag": "Njg2ODgzMjg2", + "connectionState": "Disconnected", + "status": "enabled", + "statusReason": null, + "connectionStateUpdatedTime": "0001-01-01T00:00:00", + "statusUpdatedTime": "0001-01-01T00:00:00", + "lastActivityTime": "0001-01-01T00:00:00", + "cloudToDeviceMessageCount": 0, + "authentication": { + "symmetricKey": { + "primaryKey": "lFm1Q61dr2z1mvwXjdN3D8vLNmQGAlTo8v8e5Cjk6rA=", + "secondaryKey": "OG\u002B7yZIjbY49eEwmKOd6INkmarf\u002Bd9xCNIQIBSHIzOc=" + }, + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "type": "sas" + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "ca283e3dc12bc919940b78f924368d71", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "588", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "52f656b2-d839-44bb-8770-824203924931" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice593220185", + "etag": "AAAAAAAAAAE=", + "deviceEtag": "Njg2ODgzMjg2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 2, + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/twins/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "572", + "Content-Type": "application/json", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "a74d6d5d18ec460484fb59a475c787de", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "deviceId": "TwinLifecycleDevice593220185", + "properties": { + "desired": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1, + "username": "userA" + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + } + }, + "etag": "AAAAAAAAAAE=", + "version": 2, + "deviceEtag": "Njg2ODgzMjg2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00.0000000Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": {}, + "capabilities": { + "iotEdge": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "712", + "Content-Type": "application/json; charset=utf-8", + "Date": "Thu, 25 Jun 2020 20:25:29 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "bbb6436e-dc31-425b-a307-9aed72785577" + }, + "ResponseBody": { + "deviceId": "TwinLifecycleDevice593220185", + "etag": "AAAAAAAAAAI=", + "deviceEtag": "Njg2ODgzMjg2", + "status": "enabled", + "statusUpdateTime": "0001-01-01T00:00:00Z", + "connectionState": "Disconnected", + "lastActivityTime": "0001-01-01T00:00:00Z", + "cloudToDeviceMessageCount": 0, + "authenticationType": "sas", + "x509Thumbprint": { + "primaryThumbprint": null, + "secondaryThumbprint": null + }, + "version": 3, + "properties": { + "desired": { + "username": "userA", + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.392293Z", + "$lastUpdatedVersion": 2, + "username": { + "$lastUpdated": "2020-06-25T20:25:29.392293Z", + "$lastUpdatedVersion": 2 + } + }, + "$version": 2 + }, + "reported": { + "$metadata": { + "$lastUpdated": "2020-06-25T20:25:29.3298597Z" + }, + "$version": 1 + } + }, + "capabilities": { + "iotEdge": false + } + } + }, + { + "RequestUri": "https://azade2ehub33.azure-devices.net/devices/TwinLifecycleDevice593220185?api-version=2020-03-13", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-Match": "*", + "User-Agent": [ + "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", + "(.NET Core 4.6.28928.01; Microsoft Windows 10.0.18363 )" + ], + "x-ms-client-request-id": "6a942f59cf8d232d9382e281ed1be655", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 25 Jun 2020 20:25:28 GMT", + "Server": "Microsoft-HTTPAPI/2.0", + "Vary": "Origin", + "x-ms-request-id": "58a52af6-c0fc-4e64-987b-1e3801eb91a1" + }, + "ResponseBody": [] + } + ], + "Variables": { + "IOT_HUB_CONNECTION_STRING": "HostName=AzadE2EHub33.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=Kg==;", + "RandomSeed": "2095138095" + } +} \ No newline at end of file From 486e4996abfab2ae416670362aee5a9c2c2e61b4 Mon Sep 17 00:00:00 2001 From: Azad Abbasi Date: Thu, 25 Jun 2020 18:56:41 -0700 Subject: [PATCH 12/12] address PR comments. --- .../tests/DevicesClientTests.cs | 30 ++++--- ...cesClient_BulkCreation_DeviceWithTwin.json | 16 ++-- ...ient_BulkCreation_DeviceWithTwinAsync.json | 16 ++-- .../DevicesClient_BulkUpdate.json | 76 ++++++++--------- .../DevicesClient_BulkUpdateAsync.json | 84 +++++++++---------- .../DevicesClient_DeviceTwinLifecycle.json | 48 +++++------ ...evicesClient_DeviceTwinLifecycleAsync.json | 46 +++++----- .../DevicesClient_IdentityLifecycle.json | 58 ++++++------- .../DevicesClient_IdentityLifecycleAsync.json | 64 +++++++------- .../DevicesClient_Query_GetTwins.json | 24 +++--- .../DevicesClient_Query_GetTwinsAsync.json | 24 +++--- 11 files changed, 245 insertions(+), 241 deletions(-) diff --git a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs index 984488b638c16..412309200f2e8 100644 --- a/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs +++ b/sdk/iot/Azure.Iot.Hub.Service/tests/DevicesClientTests.cs @@ -35,7 +35,7 @@ public DevicesClientTests(bool isAsync) [Test] public async Task DevicesClient_IdentityLifecycle() { - string testDeviceName = $"IdentityLifecycleDevice{GetRandom()}"; + string testDeviceId = $"IdentityLifecycleDevice{GetRandom()}"; DeviceIdentity device = null; IoTHubServiceClient client = GetClient(); @@ -46,14 +46,14 @@ public async Task DevicesClient_IdentityLifecycle() Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( new Models.DeviceIdentity { - DeviceId = testDeviceName + DeviceId = testDeviceId }).ConfigureAwait(false); device = createResponse.Value; // Get device // Get the device and compare ETag values (should remain unchanged); - Response getResponse = await client.Devices.GetIdentityAsync(testDeviceName).ConfigureAwait(false); + Response getResponse = await client.Devices.GetIdentityAsync(testDeviceId).ConfigureAwait(false); getResponse.Value.Etag.Should().BeEquivalentTo(device.Etag, "ETag value should not have changed."); @@ -82,7 +82,7 @@ public async Task DevicesClient_IdentityLifecycle() [Test] public async Task DevicesClient_DeviceTwinLifecycle() { - string testDeviceName = $"TwinLifecycleDevice{GetRandom()}"; + string testDeviceId = $"TwinLifecycleDevice{GetRandom()}"; DeviceIdentity device = null; @@ -95,16 +95,16 @@ public async Task DevicesClient_DeviceTwinLifecycle() Response createResponse = await client.Devices.CreateOrUpdateIdentityAsync( new Models.DeviceIdentity { - DeviceId = testDeviceName + DeviceId = testDeviceId }).ConfigureAwait(false); device = createResponse.Value; // Get the device twin - Response getResponse = await client.Devices.GetTwinAsync(testDeviceName).ConfigureAwait(false); + Response getResponse = await client.Devices.GetTwinAsync(testDeviceId).ConfigureAwait(false); TwinData deviceTwin = getResponse.Value; - deviceTwin.DeviceId.Should().BeEquivalentTo(testDeviceName, "DeviceId on the Twin should match that of the device."); + deviceTwin.DeviceId.Should().BeEquivalentTo(testDeviceId, "DeviceId on the Twin should match that of the device."); // Update device twin string propName = "username"; @@ -143,7 +143,7 @@ public async Task DevicesClient_BulkCreation() // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); - Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation ended with errors"); } finally { @@ -194,7 +194,8 @@ public async Task DevicesClient_BulkUpdate() await client.Devices.UpdateIdentitiesAsync(listOfDevicesToUpdate, BulkIfMatchPrecondition.Unconditional) .ConfigureAwait(false); - Assert.IsTrue(updateResponse.Value.IsSuccessful, "Bulk device update must be successful"); + // TODO: (azabbasi) Once the issue with the error parsing is resolved, include the error message in the message of the assert statement. + Assert.IsTrue(updateResponse.Value.IsSuccessful, "Bulk device update ended with errors"); // Verify the devices status is updated. deviceOne = (await client.Devices.GetIdentityAsync(deviceOne.DeviceId)).Value; @@ -234,7 +235,8 @@ public async Task DevicesClient_BulkCreation_OneAlreadyExists() // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); - Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + // TODO: (azabbasi) Once the issue with the error parsing is resolved, include the error message in the message of the assert statement. + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation failed with errors"); } finally { @@ -267,7 +269,8 @@ public async Task DevicesClient_BulkCreation_DeviceWithTwin() // Create all devices with twins Response createResponse = await client.Devices.CreateIdentitiesWithTwinAsync(devicesAndTwins).ConfigureAwait(false); - Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation ended with an error"); + // TODO: (azabbasi) Once the issue with the error parsing is resolved, include the error message in the message of the assert statement. + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation ended with errors"); // Verify that the desired properties were set // For quicker test run, we will only verify the first device on the list. @@ -299,7 +302,7 @@ public async Task DevicesClient_Query_GetTwins() // Create all devices Response createResponse = await client.Devices.CreateIdentitiesAsync(devices).ConfigureAwait(false); - Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation must be successful"); + Assert.IsTrue(createResponse.Value.IsSuccessful, "Bulk device creation ended with errors"); // We will retry the operation since it can take some time for the query to match what was recently created. int matchesFound = 0; @@ -327,7 +330,8 @@ public async Task DevicesClient_Query_GetTwins() await Task.Delay(_queryRetryInterval); } - matchesFound.Should().Be(BULK_DEVICE_COUNT, "Number of matching devices must be equal to the number of recently created devices."); + matchesFound.Should().Be(BULK_DEVICE_COUNT, "Timed out waiting for all the bulk created devices to be query-able." + + " Number of matching devices must be equal to the number of recently created devices."); } finally { 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 c480cdc280715..98fe9beb2b0a8 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 @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:33 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "00387c70-c353-431c-9cc4-f9ee8dbd6dae" + "x-ms-request-id": "5b22606d-ce17-45e7-b88b-4558db69cdcc" }, "ResponseBody": { "isSuccessful": true, @@ -47,15 +47,15 @@ "ResponseHeaders": { "Content-Length": "690", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:33 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d9e07d35-aac3-479a-8c93-181d894e3fe6" + "x-ms-request-id": "f8f6fe2d-8b76-4f9e-b8e2-89e021ec28fe" }, "ResponseBody": { "deviceId": "bulkDeviceWithTwin1109223729", "etag": "AAAAAAAAAAE=", - "deviceEtag": "MzExNDk5OTY2", + "deviceEtag": "ODc2NzcxMTYy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -82,7 +82,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.2986318Z" + "$lastUpdated": "2020-06-26T01:56:11.0678743Z" }, "$version": 1 } @@ -111,10 +111,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "5288df20-a7d9-43d5-89b3-4b679aecdbbc" + "x-ms-request-id": "8bb6734d-3fe6-43a3-93ce-5ba6c87a03c0" }, "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 76d0f4ced95ac..f6f8a1fabfe65 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 @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "761fc800-2344-40f1-b663-0ec8f7dd7cc0" + "x-ms-request-id": "a2f670ae-6c39-4a39-81c5-9476023e93da" }, "ResponseBody": { "isSuccessful": true, @@ -47,15 +47,15 @@ "ResponseHeaders": { "Content-Length": "689", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "47928cbf-2842-46cf-991d-69e2fdf2b6ea" + "x-ms-request-id": "44bcee85-6ec6-4aef-afdc-78ab3670d423" }, "ResponseBody": { "deviceId": "bulkDeviceWithTwin304767959", "etag": "AAAAAAAAAAE=", - "deviceEtag": "MzExNDk5OTY2", + "deviceEtag": "NjY3MTkzMTQ0", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -82,7 +82,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.2986318Z" + "$lastUpdated": "2020-06-26T01:56:11.0991571Z" }, "$version": 1 } @@ -111,10 +111,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "0366bf7b-e5f6-435f-8192-7fa599fc71e3" + "x-ms-request-id": "224a03f8-9bc9-479f-afa6-17336f86aa33" }, "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 09db1f1cf26b7..d2ae3d16a162e 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 @@ -22,16 +22,16 @@ "ResponseHeaders": { "Content-Length": "610", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022Mjc3MjE5MDI4\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022OTk1ODY5OTA1\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a0d75c9a-d6af-4843-a4e8-21d14b7aa56b" + "x-ms-request-id": "a9a984ce-c808-4aaf-be6d-5973568fda3b" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate2058308758", - "generationId": "637287169544809632", - "etag": "Mjc3MjE5MDI4", + "generationId": "637287333712883247", + "etag": "OTk1ODY5OTA1", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "/L5S3iGL99oUzG\u002BGFOahlPxPMAroP22Ae\u002BRVOOmkXD4=", - "secondaryKey": "UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=" + "primaryKey": "hYey5mF0mI6gG6PwlxEn8bmiGFFeijZ9PydIIhrNEv8=", + "secondaryKey": "mFJSIX36LRy/OYDVdK8JsSKrglMU6wSzFtPfMgcvTJI=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -77,16 +77,16 @@ "ResponseHeaders": { "Content-Length": "610", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022MzcwODU0OTA1\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022MTU3NjM5NTk=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "a01aad72-4eab-405f-aabe-ce1dee32f60d" + "x-ms-request-id": "9553cce4-ae4e-4ac8-851b-4f2aeb2eee1c" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1689940095", - "generationId": "637287169545434847", - "etag": "MzcwODU0OTA1", + "generationId": "637287333713508409", + "etag": "MTU3NjM5NTk=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -96,8 +96,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=", - "secondaryKey": "8HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=" + "primaryKey": "deWEbVKqEGK52ym2zElSFoh9MQFZlGKCOwS810AQgJY=", + "secondaryKey": "TmN22L\u002BtIhD\u002BnT6s77jHvXpYSgxGFrxpbVOvLPC8gOY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -124,15 +124,15 @@ "x-ms-client-request-id": "2f40eae5d092ea9e0fe7504fb5c8118a", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022Mjc3MjE5MDI4\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022/L5S3iGL99oUzG\\u002BGFOahlPxPMAroP22Ae\\u002BRVOOmkXD4=\u0022,\u0022secondaryKey\u0022:\u0022UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MzcwODU0OTA1\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=\u0022,\u0022secondaryKey\u0022:\u00228HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022OTk1ODY5OTA1\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022hYey5mF0mI6gG6PwlxEn8bmiGFFeijZ9PydIIhrNEv8=\u0022,\u0022secondaryKey\u0022:\u0022mFJSIX36LRy/OYDVdK8JsSKrglMU6wSzFtPfMgcvTJI=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MTU3NjM5NTk=\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022deWEbVKqEGK52ym2zElSFoh9MQFZlGKCOwS810AQgJY=\u0022,\u0022secondaryKey\u0022:\u0022TmN22L\\u002BtIhD\\u002BnT6s77jHvXpYSgxGFrxpbVOvLPC8gOY=\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": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "00590d13-ba6c-4714-a350-b1ffd77db9ca" + "x-ms-request-id": "aebbaad5-1608-4416-ad0f-f0fdba0cfdae" }, "ResponseBody": { "isSuccessful": true, @@ -155,29 +155,29 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "621", + "Content-Length": "622", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022Mjc3MjE5MDI5\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022OTk1ODY5OTA2\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "7a2c4a37-4119-4efc-827e-2b93d676778a" + "x-ms-request-id": "c6631196-3cb9-4abd-91a3-1ec37924ffd6" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate2058308758", - "generationId": "637287169544809632", - "etag": "Mjc3MjE5MDI5", + "generationId": "637287333712883247", + "etag": "OTk1ODY5OTA2", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T21:22:34.569219Z", + "statusUpdatedTime": "2020-06-26T01:56:11.3763003Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "/L5S3iGL99oUzG\u002BGFOahlPxPMAroP22Ae\u002BRVOOmkXD4=", - "secondaryKey": "UlylR9WaFxN9VuGlfHySnfN4CZybyVCQ/To3uLy8EZg=" + "primaryKey": "hYey5mF0mI6gG6PwlxEn8bmiGFFeijZ9PydIIhrNEv8=", + "secondaryKey": "mFJSIX36LRy/OYDVdK8JsSKrglMU6wSzFtPfMgcvTJI=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -205,29 +205,29 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "621", + "Content-Length": "622", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022MzcwODU0OTA2\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022MTU3NjM5NjA=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c605cb5b-ca8c-4c35-9da0-e52c011080e9" + "x-ms-request-id": "82a4739a-9c97-42b5-a5b2-5aa7f0ecce69" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1689940095", - "generationId": "637287169545434847", - "etag": "MzcwODU0OTA2", + "generationId": "637287333713508409", + "etag": "MTU3NjM5NjA=", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T21:22:34.569219Z", + "statusUpdatedTime": "2020-06-26T01:56:11.3763003Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "tODeAjDN4LKaGLa36g1gRspWjRLgp1xTt2xVDKUwSko=", - "secondaryKey": "8HQ5MxTZvEhqejS917ZpLj4FRuLv4JGm7n6KOWfadh8=" + "primaryKey": "deWEbVKqEGK52ym2zElSFoh9MQFZlGKCOwS810AQgJY=", + "secondaryKey": "TmN22L\u002BtIhD\u002BnT6s77jHvXpYSgxGFrxpbVOvLPC8gOY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -254,15 +254,15 @@ "x-ms-client-request-id": "79baf707e8218d141f051ab494c4fa3b", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022Mjc3MjE5MDI4\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MzcwODU0OTA1\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022eTag\u0022:\u0022OTk1ODY5OTA1\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate1689940095\u0022,\u0022eTag\u0022:\u0022MTU3NjM5NTk=\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", "StatusCode": 200, "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "959840c2-c3a6-48ab-90e3-6a2498c272a3" + "x-ms-request-id": "684e2a82-77a0-4177-9ce0-0eee596ad147" }, "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 50594fa9062d2..f81c719d72958 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 @@ -20,18 +20,18 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "610", + "Content-Length": "614", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022OTQwMTIxNjEy\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAyMjk0NzUwMA==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "61b13217-4be8-4c12-a596-1c4b826d60ac" + "x-ms-request-id": "44a1b130-cb9f-4b7e-ae9c-fc2e5072f03e" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1349701714", - "generationId": "637287169544390014", - "etag": "OTQwMTIxNjEy", + "generationId": "637287333712181914", + "etag": "MTAyMjk0NzUwMA==", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -41,8 +41,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "rx9oEiFRxG/Kha9kOkjBQt7on6KE\u002BzAkPoYzr42Gu8k=", - "secondaryKey": "qgcW3WJd8mNrgOt09vevxVES\u002B08LhNrN40/7PKKKq6s=" + "primaryKey": "fY3/wzAGCPU/uFMXEJIjCty6uyDTFZakNa6uMTfVDhs=", + "secondaryKey": "1qfJE\u002BkbrzTnXDsEzoXhBZst\u002BuNiohj2uNOwqqpULW0=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -75,18 +75,18 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "609", + "Content-Length": "613", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022OTg1NTIwODM2\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAxNTY5Mzg1NA==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "ed82efe8-825e-49b6-9e90-955ef83feae8" + "x-ms-request-id": "56f1b8ac-b4ea-48e0-a493-dd8f00cacadf" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate927166103", - "generationId": "637287169545041039", - "etag": "OTg1NTIwODM2", + "generationId": "637287333712971252", + "etag": "MTAxNTY5Mzg1NA==", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -96,8 +96,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\u002Bh2Bhh\u002Bs=", - "secondaryKey": "ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\u002Bim\u002B5/Hmw=" + "primaryKey": "9ok8Zw8yBxSy09FsFuz/ndinAWp/H4TbqbQ9UXps1dY=", + "secondaryKey": "3SDR0g7BU7GOKCqo6CGXB9w\u002B/d4nx1bBtJmB8tcd5DM=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -115,7 +115,7 @@ "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "678", + "Content-Length": "671", "Content-Type": "application/json", "User-Agent": [ "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", @@ -124,15 +124,15 @@ "x-ms-client-request-id": "aa25f27eb7c38322ae910087acceefb6", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022OTQwMTIxNjEy\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022rx9oEiFRxG/Kha9kOkjBQt7on6KE\\u002BzAkPoYzr42Gu8k=\u0022,\u0022secondaryKey\u0022:\u0022qgcW3WJd8mNrgOt09vevxVES\\u002B08LhNrN40/7PKKKq6s=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022OTg1NTIwODM2\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\\u002Bh2Bhh\\u002Bs=\u0022,\u0022secondaryKey\u0022:\u0022ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\\u002Bim\\u002B5/Hmw=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022MTAyMjk0NzUwMA==\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u0022fY3/wzAGCPU/uFMXEJIjCty6uyDTFZakNa6uMTfVDhs=\u0022,\u0022secondaryKey\u0022:\u00221qfJE\\u002BkbrzTnXDsEzoXhBZst\\u002BuNiohj2uNOwqqpULW0=\u0022},\u0022x509Thumbprint\u0022:{},\u0022type\u0022:\u0022sas\u0022},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022MTAxNTY5Mzg1NA==\u0022,\u0022importMode\u0022:\u0022update\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022authentication\u0022:{\u0022symmetricKey\u0022:{\u0022primaryKey\u0022:\u00229ok8Zw8yBxSy09FsFuz/ndinAWp/H4TbqbQ9UXps1dY=\u0022,\u0022secondaryKey\u0022:\u00223SDR0g7BU7GOKCqo6CGXB9w\\u002B/d4nx1bBtJmB8tcd5DM=\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": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "dc154fb6-d9c8-4414-8979-868378ba7b10" + "x-ms-request-id": "56bee4a5-bcf2-4a94-9846-52be8dceab45" }, "ResponseBody": { "isSuccessful": true, @@ -155,29 +155,29 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "622", + "Content-Length": "626", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022OTQwMTIxNjEz\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAyMjk0NzUwMQ==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "0a6453a5-935b-4c55-8010-c04ebd1b3412" + "x-ms-request-id": "5e763a37-f3a7-4f40-9e9f-0f8c86bc91be" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate1349701714", - "generationId": "637287169544390014", - "etag": "OTQwMTIxNjEz", + "generationId": "637287333712181914", + "etag": "MTAyMjk0NzUwMQ==", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T21:22:34.5360869Z", + "statusUpdatedTime": "2020-06-26T01:56:11.3394132Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "rx9oEiFRxG/Kha9kOkjBQt7on6KE\u002BzAkPoYzr42Gu8k=", - "secondaryKey": "qgcW3WJd8mNrgOt09vevxVES\u002B08LhNrN40/7PKKKq6s=" + "primaryKey": "fY3/wzAGCPU/uFMXEJIjCty6uyDTFZakNa6uMTfVDhs=", + "secondaryKey": "1qfJE\u002BkbrzTnXDsEzoXhBZst\u002BuNiohj2uNOwqqpULW0=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -205,29 +205,29 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "621", + "Content-Length": "625", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022OTg1NTIwODM3\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAxNTY5Mzg1NQ==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1a7080c8-2e94-4b2d-aa90-016448aed58d" + "x-ms-request-id": "8a908536-bb04-4595-8f14-910732df1846" }, "ResponseBody": { "deviceId": "bulkDeviceUpdate927166103", - "generationId": "637287169545041039", - "etag": "OTg1NTIwODM3", + "generationId": "637287333712971252", + "etag": "MTAxNTY5Mzg1NQ==", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T21:22:34.5454894Z", + "statusUpdatedTime": "2020-06-26T01:56:11.3279763Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "nXBTeUrhNOBa4iX6GsWBuoqxa/eeqAdmPmU\u002Bh2Bhh\u002Bs=", - "secondaryKey": "ow/5NiujgcY5U0p3k3ZJRwVM1mTQFBD1rV\u002Bim\u002B5/Hmw=" + "primaryKey": "9ok8Zw8yBxSy09FsFuz/ndinAWp/H4TbqbQ9UXps1dY=", + "secondaryKey": "3SDR0g7BU7GOKCqo6CGXB9w\u002B/d4nx1bBtJmB8tcd5DM=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -245,7 +245,7 @@ "RequestMethod": "POST", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "160", + "Content-Length": "168", "Content-Type": "application/json", "User-Agent": [ "azsdk-net-Iot.Hub.Service/1.0.0-dev.20200625.1", @@ -254,15 +254,15 @@ "x-ms-client-request-id": "8ddf33bb74c97088121fede063f0f1e8", "x-ms-return-client-request-id": "true" }, - "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022OTQwMTIxNjEy\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022OTg1NTIwODM2\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", + "RequestBody": "[{\u0022id\u0022:\u0022bulkDeviceUpdate1349701714\u0022,\u0022eTag\u0022:\u0022MTAyMjk0NzUwMA==\u0022,\u0022importMode\u0022:\u0022delete\u0022},{\u0022id\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022eTag\u0022:\u0022MTAxNTY5Mzg1NA==\u0022,\u0022importMode\u0022:\u0022delete\u0022}]", "StatusCode": 200, "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6d182928-1b07-49fd-8014-61debe6fa481" + "x-ms-request-id": "a438c620-f585-45ad-8df3-b604d1ec7e87" }, "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 03a1fd107790f..68af44ea2cb70 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 @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "611", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022NjY5NTY0OTg0\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022OTY5MDU5ODI0\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1090e6ab-4a9b-4910-bc3e-6a47d2398ac7" + "x-ms-request-id": "cb33370e-44cb-46c2-bb4b-696a44bc268e" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice10350067", - "generationId": "637287169547069383", - "etag": "NjY5NTY0OTg0", + "generationId": "637287333715255834", + "etag": "OTY5MDU5ODI0", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "UeMU/JbG3nbrdaiYdrUPE/CX03LLry6R\u002BDmTaR\u002BqQbA=", - "secondaryKey": "MFGZY/Pv8AzzUvh2GVT7B9lbgr4eUyLEPUJ8\u002BdOHdA8=" + "primaryKey": "EWFfEuAhP\u002BOssW/Od\u002BmYkGwnBL\u002Bdj57HZfEvy0GTZ/o=", + "secondaryKey": "kFJw79YXD2FOHXQ9a097XLWIGwxs2ybUAbkT2RzhWjY=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -71,15 +71,15 @@ "ResponseHeaders": { "Content-Length": "587", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "f5088b7a-2c4d-4772-8888-363f0f5858c2" + "x-ms-request-id": "fc862bfc-7850-4f71-87be-2909dcdcdd8b" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice10350067", "etag": "AAAAAAAAAAE=", - "deviceEtag": "NjY5NTY0OTg0", + "deviceEtag": "OTY5MDU5ODI0", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -94,13 +94,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + "$lastUpdated": "2020-06-26T01:56:11.5255834Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + "$lastUpdated": "2020-06-26T01:56:11.5255834Z" }, "$version": 1 } @@ -130,21 +130,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + "$lastUpdated": "2020-06-26T01:56:11.5255834Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + "$lastUpdated": "2020-06-26T01:56:11.5255834Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "NjY5NTY0OTg0", + "deviceEtag": "OTY5MDU5ODI0", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -158,17 +158,17 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "709", + "Content-Length": "713", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "1120f2d3-58b1-4b9f-a45f-024955fe3224" + "x-ms-request-id": "8db796ac-6869-423e-9a07-138cb2e124d0" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice10350067", "etag": "AAAAAAAAAAI=", - "deviceEtag": "NjY5NTY0OTg0", + "deviceEtag": "OTY5MDU5ODI0", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -184,10 +184,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.76955Z", + "$lastUpdated": "2020-06-26T01:56:11.5724361Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-25T21:22:34.76955Z", + "$lastUpdated": "2020-06-26T01:56:11.5724361Z", "$lastUpdatedVersion": 2 } }, @@ -195,7 +195,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.7069383Z" + "$lastUpdated": "2020-06-26T01:56:11.5255834Z" }, "$version": 1 } @@ -222,10 +222,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "f78011aa-07d8-4003-8f25-07cf1fcc1f52" + "x-ms-request-id": "752fd228-e6ce-4fce-aca1-1e17a15c9527" }, "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 f06fa9645a1a2..01680038dcde5 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 @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "613", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022NDEzNzI4MjY2\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022ODgxODE4MTE4\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "9825ff00-3534-49d2-ab34-fada7e6029c3" + "x-ms-request-id": "e4f88911-069a-4b90-a030-1c365d2e2b62" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice2112406490", - "generationId": "637287169546884392", - "etag": "NDEzNzI4MjY2", + "generationId": "637287333714452458", + "etag": "ODgxODE4MTE4", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "gLClG\u002BOAi/o8lq4khlCqxcSuhP3uoY5RNAZjGLpqFss=", - "secondaryKey": "B2rgJLE4i8zMI/A\u002Bar\u002BOM5gV/1KEP8lLpAxQP3wqYJg=" + "primaryKey": "pvgoJXTrmUGeVT/wH05vFkNrl1slbbDIkETJKMdMUpg=", + "secondaryKey": "MtQnhuR3aGmJfMUMuzlbUy7BqUBEXVTi1WEcvdra5Ag=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -71,15 +71,15 @@ "ResponseHeaders": { "Content-Length": "589", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "c1d7d3b0-9bb2-41fc-a87a-342754abae05" + "x-ms-request-id": "8e850c97-0ba0-4eef-97f5-2386e357b2ff" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice2112406490", "etag": "AAAAAAAAAAE=", - "deviceEtag": "NDEzNzI4MjY2", + "deviceEtag": "ODgxODE4MTE4", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -94,13 +94,13 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + "$lastUpdated": "2020-06-26T01:56:11.4452458Z" }, "$version": 1 }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + "$lastUpdated": "2020-06-26T01:56:11.4452458Z" }, "$version": 1 } @@ -130,21 +130,21 @@ "properties": { "desired": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + "$lastUpdated": "2020-06-26T01:56:11.4452458Z" }, "$version": 1, "username": "userA" }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + "$lastUpdated": "2020-06-26T01:56:11.4452458Z" }, "$version": 1 } }, "etag": "AAAAAAAAAAE=", "version": 2, - "deviceEtag": "NDEzNzI4MjY2", + "deviceEtag": "ODgxODE4MTE4", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00.0000000Z", "connectionState": "Disconnected", @@ -160,15 +160,15 @@ "ResponseHeaders": { "Content-Length": "715", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "24a5f07f-6cb7-47f7-b9a3-64767b76e76c" + "x-ms-request-id": "7c15c690-6baf-42be-91e5-bcd8e0077165" }, "ResponseBody": { "deviceId": "TwinLifecycleDevice2112406490", "etag": "AAAAAAAAAAI=", - "deviceEtag": "NDEzNzI4MjY2", + "deviceEtag": "ODgxODE4MTE4", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Disconnected", @@ -184,10 +184,10 @@ "desired": { "username": "userA", "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.7509423Z", + "$lastUpdated": "2020-06-26T01:56:11.5077261Z", "$lastUpdatedVersion": 2, "username": { - "$lastUpdated": "2020-06-25T21:22:34.7509423Z", + "$lastUpdated": "2020-06-26T01:56:11.5077261Z", "$lastUpdatedVersion": 2 } }, @@ -195,7 +195,7 @@ }, "reported": { "$metadata": { - "$lastUpdated": "2020-06-25T21:22:34.6884392Z" + "$lastUpdated": "2020-06-26T01:56:11.4452458Z" }, "$version": 1 } @@ -222,10 +222,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d2699661-0472-48e5-8888-7e9f9fec2f60" + "x-ms-request-id": "17fc2821-b95c-4860-aa21-491bd723f5c9" }, "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 424011efa9fb3..06d946e66cc82 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 @@ -21,16 +21,16 @@ "ResponseHeaders": { "Content-Length": "616", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022MzUyNDgyOTcy\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022MTk2OTgyOTA=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "8a531da8-b4f3-4a1f-9823-0f5968fcbe63" + "x-ms-request-id": "341b56a1-d2d3-4d28-a3a3-11d2930d416b" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287169548767689", - "etag": "MzUyNDgyOTcy", + "generationId": "637287333716616178", + "etag": "MTk2OTgyOTA=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", - "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + "primaryKey": "A570Al6wGshmeA65KQagnIN/hZyEBpfYH7aB2CGoey8=", + "secondaryKey": "1UTLKjL3QP4rHcP/RV4sHL0ddC0WLn\u002BO1SVoux\u002B8FAw=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -71,16 +71,16 @@ "ResponseHeaders": { "Content-Length": "619", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022MzUyNDgyOTcy\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022MTk2OTgyOTA=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "f800787e-26dc-4d01-ad86-91085c36383a" + "x-ms-request-id": "68147e0e-2eb3-4ae4-b088-55d74aa2ee68" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287169548767689", - "etag": "MzUyNDgyOTcy", + "generationId": "637287333716616178", + "etag": "MTk2OTgyOTA=", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -90,8 +90,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", - "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + "primaryKey": "A570Al6wGshmeA65KQagnIN/hZyEBpfYH7aB2CGoey8=", + "secondaryKey": "1UTLKjL3QP4rHcP/RV4sHL0ddC0WLn\u002BO1SVoux\u002B8FAw=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -109,7 +109,7 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "588", + "Content-Length": "583", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ @@ -121,8 +121,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287169548767689", - "etag": "MzUyNDgyOTcy", + "generationId": "637287333716616178", + "etag": "MTk2OTgyOTA=", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -131,8 +131,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", - "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + "primaryKey": "A570Al6wGshmeA65KQagnIN/hZyEBpfYH7aB2CGoey8=", + "secondaryKey": "1UTLKjL3QP4rHcP/RV4sHL0ddC0WLn\u002BO1SVoux\u002B8FAw=" }, "x509Thumbprint": {}, "type": "sas" @@ -145,27 +145,27 @@ "ResponseHeaders": { "Content-Length": "628", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022MzUyNDgyOTcz\u0022", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", + "ETag": "\u0022MTk2OTgyOTE=\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "d3040bee-ed96-4cd5-8d3d-205a6408ba78" + "x-ms-request-id": "63e19e9a-0f9c-43d4-9189-ecc13ab7e6d2" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice726366390", - "generationId": "637287169548767689", - "etag": "MzUyNDgyOTcz", + "generationId": "637287333716616178", + "etag": "MTk2OTgyOTE=", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T21:22:34.9249407Z", + "statusUpdatedTime": "2020-06-26T01:56:11.7231697Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "SPBwax8Jf4EKRB\u002BuNDm4mb/9hFFgd5RnBn\u002B9cjrRGrk=", - "secondaryKey": "PhxO8sHwTnUSGZC8ZTRd\u002BCgmWZO64eQ6b8vRS75w1Dg=" + "primaryKey": "A570Al6wGshmeA65KQagnIN/hZyEBpfYH7aB2CGoey8=", + "secondaryKey": "1UTLKjL3QP4rHcP/RV4sHL0ddC0WLn\u002BO1SVoux\u002B8FAw=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -195,10 +195,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "ed859d98-6b40-4ae8-834d-2f4ea0df3355" + "x-ms-request-id": "1af67601-d4b4-4d2a-8e1b-c10c672c895d" }, "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 a7fcc305175dd..89c2698e98f66 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 @@ -19,18 +19,18 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "616", + "Content-Length": "620", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022Mzk0MjI0MzIw\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAxOTIzOTMyMA==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "db50e682-f8a2-4ffc-9f1d-0f7ca88ef17a" + "x-ms-request-id": "c9921d66-9aa9-479a-9c22-3620027c110b" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287169548635058", - "etag": "Mzk0MjI0MzIw", + "generationId": "637287333716113483", + "etag": "MTAxOTIzOTMyMA==", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -40,8 +40,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", - "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + "primaryKey": "9PzVWGM2oihWoMv1VouyfbE544SVUbUGE3St7FjzE48=", + "secondaryKey": "xnB83tyPoDXpfZck7Qrq6DqMrhRPaaChWM3Vr8CPI8c=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -69,18 +69,18 @@ "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "619", + "Content-Length": "623", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022Mzk0MjI0MzIw\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAxOTIzOTMyMA==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "35f07bea-3d93-42c7-95e0-ad46456653b0" + "x-ms-request-id": "c469c3b3-5dec-4fea-bd40-3b8637b7bbeb" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287169548635058", - "etag": "Mzk0MjI0MzIw", + "generationId": "637287333716113483", + "etag": "MTAxOTIzOTMyMA==", "connectionState": "Disconnected", "status": "enabled", "statusReason": null, @@ -90,8 +90,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", - "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + "primaryKey": "9PzVWGM2oihWoMv1VouyfbE544SVUbUGE3St7FjzE48=", + "secondaryKey": "xnB83tyPoDXpfZck7Qrq6DqMrhRPaaChWM3Vr8CPI8c=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -109,7 +109,7 @@ "RequestMethod": "PUT", "RequestHeaders": { "Authorization": "Sanitized", - "Content-Length": "578", + "Content-Length": "577", "Content-Type": "application/json", "If-Match": "*", "User-Agent": [ @@ -121,8 +121,8 @@ }, "RequestBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287169548635058", - "etag": "Mzk0MjI0MzIw", + "generationId": "637287333716113483", + "etag": "MTAxOTIzOTMyMA==", "connectionState": "Disconnected", "status": "disabled", "connectionStateUpdatedTime": "0001-01-01T00:00:00.0000000Z", @@ -131,8 +131,8 @@ "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", - "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + "primaryKey": "9PzVWGM2oihWoMv1VouyfbE544SVUbUGE3St7FjzE48=", + "secondaryKey": "xnB83tyPoDXpfZck7Qrq6DqMrhRPaaChWM3Vr8CPI8c=" }, "x509Thumbprint": {}, "type": "sas" @@ -143,29 +143,29 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "628", + "Content-Length": "632", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", - "ETag": "\u0022Mzk0MjI0MzIx\u0022", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", + "ETag": "\u0022MTAxOTIzOTMyMQ==\u0022", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "50d45451-7e6b-46c6-8b77-9c72d4cf11f9" + "x-ms-request-id": "70b4b27d-6bbc-46c2-8401-564fc570ceef" }, "ResponseBody": { "deviceId": "IdentityLifecycleDevice375200814", - "generationId": "637287169548635058", - "etag": "Mzk0MjI0MzIx", + "generationId": "637287333716113483", + "etag": "MTAxOTIzOTMyMQ==", "connectionState": "Disconnected", "status": "disabled", "statusReason": null, "connectionStateUpdatedTime": "0001-01-01T00:00:00Z", - "statusUpdatedTime": "2020-06-25T21:22:34.9245877Z", + "statusUpdatedTime": "2020-06-26T01:56:11.6779617Z", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authentication": { "symmetricKey": { - "primaryKey": "fn8F52cNa1jqApFwzIgqhXPKKZ2Z0VW90sQUhlzggKw=", - "secondaryKey": "cI/MSuELtbV1\u002BZjA6DKf2fdVBlwGl8WDuvouK2Lkd0A=" + "primaryKey": "9PzVWGM2oihWoMv1VouyfbE544SVUbUGE3St7FjzE48=", + "secondaryKey": "xnB83tyPoDXpfZck7Qrq6DqMrhRPaaChWM3Vr8CPI8c=" }, "x509Thumbprint": { "primaryThumbprint": null, @@ -195,10 +195,10 @@ "StatusCode": 204, "ResponseHeaders": { "Content-Length": "0", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:10 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "b40bd280-443f-4f70-ab83-d11322d3e8a8" + "x-ms-request-id": "9bd939f8-efd2-4f2f-ab09-b35d953a4176" }, "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 1e241443d9828..d9ae5d83a9faa 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 @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "cbea7905-3cc1-430b-a202-8c124b066593" + "x-ms-request-id": "4b0790be-cecb-4751-a086-162df8019064" }, "ResponseBody": { "isSuccessful": true, @@ -49,15 +49,15 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "4305", + "Content-Length": "5917", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:34 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "e5bbaba9-fa3a-4d4b-8f7a-b0a00dd03993" + "x-ms-request-id": "c14b3276-b1b8-4356-a433-90d3cadcca11" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjY2MTQ5NTU5\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-25T21:22:34.2929707Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022IdentityLifecycleDevice726366390\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzUyNDgyOTcy\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-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQwODYwOTc3\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-25T21:22:34.2977789Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk1ODY5OTA2\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-26T01:56:11.3763003Z\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-26T01:56:11.2883247Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.2883247Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxNTY5Mzg1NQ==\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-26T01:56:11.3279763Z\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-26T01:56:11.2971252Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.2971252Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device113\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTcxOTQwMzk5\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-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device14\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTYzMDA5NDI1\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-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1778863504\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc0NzI1ODM3\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-26T01:56:11.0932095Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device65\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODQ2NTEyODU4\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-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Nzk2OTE5MzQ1\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-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzE4MDE5NTA0\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-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTIzNzUyMjc2\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-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices/query?api-version=2020-03-13", @@ -78,15 +78,15 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "11615", + "Content-Length": "13327", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:37 GMT", + "Date": "Fri, 26 Jun 2020 01:56:14 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "77d292bb-b9bf-4556-a01f-1f252e7250bb" + "x-ms-request-id": "2494f633-4b33-405f-aeae-bd633c5f7766" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA4OTM1OTQw\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-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjMxNDg3NjE2\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-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc3MTI0NjQ=\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-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTMyODY3OTY1\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-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzE2MTkwMzI0\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-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTMzNzU3Mjg2\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-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzA5NDQzMjMx\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-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyNDc5MDk5\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-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc0Mjk4MTk2\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-26T01:56:11.8251807Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8251807Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDQ4NTM3MTQ5\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-26T01:56:11.7731879Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7731879Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDM5MTA4OTU4\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-26T01:56:11.8221398Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8221398Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAwNjIyOTg1MA==\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-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjY3NDYzNTAw\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-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTg4NzcxNzg=\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-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device113\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTcxOTQwMzk5\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-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device14\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTYzMDA5NDI1\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-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device65\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODQ2NTEyODU4\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-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAwNjIyOTg1MA==\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-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Nzk2OTE5MzQ1\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-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjY3NDYzNTAw\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-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTg4NzcxNzg=\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-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTg4NzcxNzg=\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-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTY4MzUwMzA0\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-26T01:56:11.7915185Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7915185Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjU5NTYyMTYw\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-26T01:56:11.8095583Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8095583Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzU4NzcyMjg2\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-26T01:56:11.8227805Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8227805Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzE4MDE5NTA0\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-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTIzNzUyMjc2\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-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDExNzg1NDIy\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-26T01:56:11.8408011Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8408011Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", @@ -107,10 +107,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:37 GMT", + "Date": "Fri, 26 Jun 2020 01:56:14 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "6bc49e3c-da06-45c6-9a81-392b2cc78579" + "x-ms-request-id": "f134add4-a217-41c1-9395-052923a08810" }, "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 a89f7410feb4f..8451289e5533b 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 @@ -19,10 +19,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:35 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "67d20faf-9db3-45ad-8a2b-09927f6fd31a" + "x-ms-request-id": "dcd8a698-9500-4c12-8b88-a04731ab2efe" }, "ResponseBody": { "isSuccessful": true, @@ -49,15 +49,15 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "4305", + "Content-Length": "5917", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:35 GMT", + "Date": "Fri, 26 Jun 2020 01:56:11 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "e9a170cb-badc-4d9e-876c-a02ca0bfdfc0" + "x-ms-request-id": "85009205-7511-48dd-857f-7d27a6d2c011" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1919949225\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjY2MTQ5NTU5\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-25T21:22:34.2929707Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022IdentityLifecycleDevice726366390\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzUyNDgyOTcy\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-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:34.8767689Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1902645846\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTQwODYwOTc3\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-25T21:22:34.2977789Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDeviceUpdate2058308758\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk1ODY5OTA2\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-26T01:56:11.3763003Z\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-26T01:56:11.2883247Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.2883247Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceUpdate927166103\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAxNTY5Mzg1NQ==\u0022,\u0022status\u0022:\u0022disabled\u0022,\u0022statusUpdateTime\u0022:\u00222020-06-26T01:56:11.3279763Z\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-26T01:56:11.2971252Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.2971252Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device113\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTcxOTQwMzk5\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-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device14\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTYzMDA5NDI1\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-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDeviceWithTwin1778863504\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc0NzI1ODM3\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-26T01:56:11.0932095Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device65\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODQ2NTEyODU4\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-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Nzk2OTE5MzQ1\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-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzE4MDE5NTA0\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-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTIzNzUyMjc2\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-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices/query?api-version=2020-03-13", @@ -78,15 +78,15 @@ }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "11615", + "Content-Length": "13327", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:36 GMT", + "Date": "Fri, 26 Jun 2020 01:56:13 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", "x-ms-item-type": "Twin", - "x-ms-request-id": "8564ffa6-80df-4499-a2ca-3ed49edb438a" + "x-ms-request-id": "b8b1321a-d6fe-4b7d-80ac-d1baccb38eca" }, - "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDA4OTM1OTQw\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-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0466604Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjMxNDg3NjE2\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-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.1128475Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc3MTI0NjQ=\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-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0476797Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTMyODY3OTY1\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-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0197514Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTA2OTY5MjcwOQ==\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-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0237035Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzE2MTkwMzI0\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-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0633338Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTQ3NjA0MDAx\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-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.035341Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTMzNzU3Mjg2\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-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0245739Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTU4NDU0NzY5\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-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0306492Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzA5NDQzMjMx\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-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0408036Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NTcyNDc5MDk5\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-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0338624Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjg3ODQ2NDg3\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-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0351752Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTYzOTIyNzM2\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-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0440559Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTcyMDM0Mzg2\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-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:22:35.0273467Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" + "ResponseBody": "[{\u0022deviceId\u0022:\u0022bulkDevice376255258\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Mjc0Mjk4MTk2\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-26T01:56:11.8251807Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8251807Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1046556416\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDQ4NTM3MTQ5\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-26T01:56:11.7731879Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7731879Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice414684285\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDM5MTA4OTU4\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-26T01:56:11.8221398Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8221398Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1497828432\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAwNjIyOTg1MA==\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-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice983827358\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1435339341\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjY3NDYzNTAw\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-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice568420481\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTg4NzcxNzg=\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-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device113\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTcxOTQwMzk5\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-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:47:24.6277182Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device14\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTYzMDA5NDI1\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-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:44:46.7402787Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice767781652\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022device65\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022ODQ2NTEyODU4\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-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-25T21:46:37.4879697Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice512290233\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTAwNjIyOTg1MA==\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-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7728308Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice772015350\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022Nzk2OTE5MzQ1\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-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8224345Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1353506827\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MjY3NDYzNTAw\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-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8159877Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2044993392\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTg4NzcxNzg=\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-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1918934926\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTg4NzcxNzg=\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-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7832395Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1686270456\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTY4MzUwMzA0\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-26T01:56:11.7915185Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7915185Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice779703902\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NjU5NTYyMTYw\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-26T01:56:11.8095583Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8095583Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice2085718378\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NzU4NzcyMjg2\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-26T01:56:11.8227805Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8227805Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1904312372\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MzE4MDE5NTA0\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-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7755818Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice1753905059\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022MTIzNzUyMjc2\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-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.7860151Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice709993140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022OTk0MDk1NzUz\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-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8168622Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}},{\u0022deviceId\u0022:\u0022bulkDevice328709140\u0022,\u0022etag\u0022:\u0022AAAAAAAAAAE=\u0022,\u0022deviceEtag\u0022:\u0022NDExNzg1NDIy\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-26T01:56:11.8408011Z\u0022},\u0022$version\u0022:1},\u0022reported\u0022:{\u0022$metadata\u0022:{\u0022$lastUpdated\u0022:\u00222020-06-26T01:56:11.8408011Z\u0022},\u0022$version\u0022:1}},\u0022capabilities\u0022:{\u0022iotEdge\u0022:false}}]" }, { "RequestUri": "https://azade2ehub33.azure-devices.net/devices?api-version=2020-03-13", @@ -107,10 +107,10 @@ "ResponseHeaders": { "Content-Length": "47", "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 25 Jun 2020 21:22:36 GMT", + "Date": "Fri, 26 Jun 2020 01:56:13 GMT", "Server": "Microsoft-HTTPAPI/2.0", "Vary": "Origin", - "x-ms-request-id": "f4856c8c-0eb7-4f6e-a09c-e65dd385df3a" + "x-ms-request-id": "ca1d9638-a999-467b-8aaa-7c4839f1236f" }, "ResponseBody": { "isSuccessful": true,