public async Task UpdateVirtualNetworkLink()
        {
            // ARRANGE
            var virtualNetworkLinkData = new VirtualNetworkLinkData();

            virtualNetworkLinkData.VirtualNetwork = new WritableSubResource()
            {
                Id = new ResourceIdentifier(vnetId),
            };

            var virtualNetworkLinkName    = Recording.GenerateAssetName("virtualNetworkLink-");
            var createdVirtualNetworkLink = await dnsForwardingRuleset.GetVirtualNetworkLinks().CreateOrUpdateAsync(WaitUntil.Completed, virtualNetworkLinkName, virtualNetworkLinkData);

            var newTagKey   = Recording.GenerateAlphaNumericId("tagKey");
            var newTagValue = Recording.GenerateAlphaNumericId("tagValue");

            var patchableVirtualNetworkLinkData = new VirtualNetworkLinkPatch();

            patchableVirtualNetworkLinkData.Metadata.Add(newTagKey, newTagValue);

            // ACT
            var patchedVirtualNetworkLink = await createdVirtualNetworkLink.Value.UpdateAsync(WaitUntil.Completed, patchableVirtualNetworkLinkData);

            // ASSERT
            CollectionAssert.AreEquivalent(patchedVirtualNetworkLink.Value.Data.Metadata, patchableVirtualNetworkLinkData.Metadata);
        }
        internal static VirtualNetworkLinkListResult DeserializeVirtualNetworkLinkListResult(JsonElement element)
        {
            Optional <IReadOnlyList <VirtualNetworkLinkData> > value = default;
            Optional <string> nextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("value"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <VirtualNetworkLinkData> array = new List <VirtualNetworkLinkData>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(VirtualNetworkLinkData.DeserializeVirtualNetworkLinkData(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("nextLink"))
                {
                    nextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new VirtualNetworkLinkListResult(Optional.ToList(value), nextLink.Value));
        }
        public async Task CreateVirtualNetworkLink()
        {
            // ARRANGE
            var virtualNetworkLinkData = new VirtualNetworkLinkData();

            virtualNetworkLinkData.VirtualNetwork = new WritableSubResource()
            {
                Id = new ResourceIdentifier(vnetId),
            };

            var virtualNetworkLinkName = Recording.GenerateAssetName("virtualNetworkLink-");

            // ACT
            var createdVirtualNetworkLink = await dnsForwardingRuleset.GetVirtualNetworkLinks().CreateOrUpdateAsync(WaitUntil.Completed, virtualNetworkLinkName, virtualNetworkLinkData);

            // ASSERT
            Assert.AreEqual(createdVirtualNetworkLink.Value.Data.ProvisioningState, ProvisioningState.Succeeded);
        }
        public async Task RemoveVirtualNetworkLink()
        {
            // ARRANGE
            var virtualNetworkLinkData = new VirtualNetworkLinkData();

            virtualNetworkLinkData.VirtualNetwork = new WritableSubResource()
            {
                Id = new ResourceIdentifier(vnetId),
            };

            var virtualNetworkLinkName    = Recording.GenerateAssetName("virtualNetworkLink-");
            var createdVirtualNetworkLink = await dnsForwardingRuleset.GetVirtualNetworkLinks().CreateOrUpdateAsync(WaitUntil.Completed, virtualNetworkLinkName, virtualNetworkLinkData);

            // ACT
            await createdVirtualNetworkLink.Value.DeleteAsync(WaitUntil.Completed);

            // ASSERT
            var getVirtualNetworkLink = await dnsForwardingRuleset.GetVirtualNetworkLinks().ExistsAsync(virtualNetworkLinkName);

            Assert.AreEqual(getVirtualNetworkLink.Value, false);
        }