public async Task <Response <PeerExpressRouteCircuitConnection> > GetAsync(string resourceGroupName, string circuitName, string peeringName, string connectionName, CancellationToken cancellationToken = default) { if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (circuitName == null) { throw new ArgumentNullException(nameof(circuitName)); } if (peeringName == null) { throw new ArgumentNullException(nameof(peeringName)); } if (connectionName == null) { throw new ArgumentNullException(nameof(connectionName)); } using var message = CreateGetRequest(resourceGroupName, circuitName, peeringName, connectionName); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { PeerExpressRouteCircuitConnection value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); value = PeerExpressRouteCircuitConnection.DeserializePeerExpressRouteCircuitConnection(document.RootElement); return(Response.FromValue(value, message.Response)); }
internal static ExpressRouteCircuitPeeringData DeserializeExpressRouteCircuitPeeringData(JsonElement element) { Optional <string> name = default; Optional <string> etag = default; Optional <string> type = default; Optional <string> id = default; Optional <ExpressRoutePeeringType> peeringType = default; Optional <ExpressRoutePeeringState> state = default; Optional <int> azureASN = default; Optional <long> peerASN = default; Optional <string> primaryPeerAddressPrefix = default; Optional <string> secondaryPeerAddressPrefix = default; Optional <string> primaryAzurePort = default; Optional <string> secondaryAzurePort = default; Optional <string> sharedKey = default; Optional <int> vlanId = default; Optional <ExpressRouteCircuitPeeringConfig> microsoftPeeringConfig = default; Optional <ExpressRouteCircuitStats> stats = default; Optional <ProvisioningState> provisioningState = default; Optional <string> gatewayManagerEtag = default; Optional <string> lastModifiedBy = default; Optional <WritableSubResource> routeFilter = default; Optional <Ipv6ExpressRouteCircuitPeeringConfig> ipv6PeeringConfig = default; Optional <Resources.Models.SubResource> expressRouteConnection = default; Optional <IList <ExpressRouteCircuitConnectionData> > connections = default; Optional <IReadOnlyList <PeerExpressRouteCircuitConnection> > peeredConnections = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("etag")) { etag = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = property.Value.GetString(); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("peeringType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } peeringType = new ExpressRoutePeeringType(property0.Value.GetString()); continue; } if (property0.NameEquals("state")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } state = new ExpressRoutePeeringState(property0.Value.GetString()); continue; } if (property0.NameEquals("azureASN")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } azureASN = property0.Value.GetInt32(); continue; } if (property0.NameEquals("peerASN")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } peerASN = property0.Value.GetInt64(); continue; } if (property0.NameEquals("primaryPeerAddressPrefix")) { primaryPeerAddressPrefix = property0.Value.GetString(); continue; } if (property0.NameEquals("secondaryPeerAddressPrefix")) { secondaryPeerAddressPrefix = property0.Value.GetString(); continue; } if (property0.NameEquals("primaryAzurePort")) { primaryAzurePort = property0.Value.GetString(); continue; } if (property0.NameEquals("secondaryAzurePort")) { secondaryAzurePort = property0.Value.GetString(); continue; } if (property0.NameEquals("sharedKey")) { sharedKey = property0.Value.GetString(); continue; } if (property0.NameEquals("vlanId")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } vlanId = property0.Value.GetInt32(); continue; } if (property0.NameEquals("microsoftPeeringConfig")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } microsoftPeeringConfig = ExpressRouteCircuitPeeringConfig.DeserializeExpressRouteCircuitPeeringConfig(property0.Value); continue; } if (property0.NameEquals("stats")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } stats = ExpressRouteCircuitStats.DeserializeExpressRouteCircuitStats(property0.Value); continue; } if (property0.NameEquals("provisioningState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } provisioningState = new ProvisioningState(property0.Value.GetString()); continue; } if (property0.NameEquals("gatewayManagerEtag")) { gatewayManagerEtag = property0.Value.GetString(); continue; } if (property0.NameEquals("lastModifiedBy")) { lastModifiedBy = property0.Value.GetString(); continue; } if (property0.NameEquals("routeFilter")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } routeFilter = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("ipv6PeeringConfig")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } ipv6PeeringConfig = Ipv6ExpressRouteCircuitPeeringConfig.DeserializeIpv6ExpressRouteCircuitPeeringConfig(property0.Value); continue; } if (property0.NameEquals("expressRouteConnection")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } expressRouteConnection = JsonSerializer.Deserialize <Resources.Models.SubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("connections")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <ExpressRouteCircuitConnectionData> array = new List <ExpressRouteCircuitConnectionData>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(ExpressRouteCircuitConnectionData.DeserializeExpressRouteCircuitConnectionData(item)); } connections = array; continue; } if (property0.NameEquals("peeredConnections")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <PeerExpressRouteCircuitConnection> array = new List <PeerExpressRouteCircuitConnection>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(PeerExpressRouteCircuitConnection.DeserializePeerExpressRouteCircuitConnection(item)); } peeredConnections = array; continue; } } continue; } } return(new ExpressRouteCircuitPeeringData(id.Value, name.Value, etag.Value, type.Value, Optional.ToNullable(peeringType), Optional.ToNullable(state), Optional.ToNullable(azureASN), Optional.ToNullable(peerASN), primaryPeerAddressPrefix.Value, secondaryPeerAddressPrefix.Value, primaryAzurePort.Value, secondaryAzurePort.Value, sharedKey.Value, Optional.ToNullable(vlanId), microsoftPeeringConfig.Value, stats.Value, Optional.ToNullable(provisioningState), gatewayManagerEtag.Value, lastModifiedBy.Value, routeFilter, ipv6PeeringConfig.Value, expressRouteConnection, Optional.ToList(connections), Optional.ToList(peeredConnections))); }