internal ExpressRouteCircuitConnection(ArmClient armClient, ExpressRouteCircuitConnectionData data) : this(armClient, new ResourceIdentifier(data.Id)) { HasData = true; _data = data; }
internal static ExpressRouteCircuitPeeringData DeserializeExpressRouteCircuitPeeringData(JsonElement element) { Optional <string> name = default; Optional <string> etag = default; Optional <string> type = default; ResourceIdentifier 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 <SubResource> routeFilter = default; Optional <Ipv6ExpressRouteCircuitPeeringConfig> ipv6PeeringConfig = default; Optional <ExpressRouteConnectionId> 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 = SubResource.DeserializeSubResource(property0.Value); 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 = ExpressRouteConnectionId.DeserializeExpressRouteConnectionId(property0.Value); 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, 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.Value, ipv6PeeringConfig.Value, expressRouteConnection.Value, Optional.ToList(connections), Optional.ToList(peeredConnections))); }
public async virtual Task <ArmOperation <ExpressRouteCircuitConnection> > CreateOrUpdateAsync(bool waitForCompletion, string connectionName, ExpressRouteCircuitConnectionData expressRouteCircuitConnectionParameters, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(connectionName, nameof(connectionName)); Argument.AssertNotNull(expressRouteCircuitConnectionParameters, nameof(expressRouteCircuitConnectionParameters)); using var scope = _expressRouteCircuitConnectionClientDiagnostics.CreateScope("ExpressRouteCircuitConnectionCollection.CreateOrUpdate"); scope.Start(); try { var response = await _expressRouteCircuitConnectionRestClient.CreateOrUpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, connectionName, expressRouteCircuitConnectionParameters, cancellationToken).ConfigureAwait(false); var operation = new NetworkArmOperation <ExpressRouteCircuitConnection>(new ExpressRouteCircuitConnectionOperationSource(Client), _expressRouteCircuitConnectionClientDiagnostics, Pipeline, _expressRouteCircuitConnectionRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, connectionName, expressRouteCircuitConnectionParameters).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitForCompletion) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public virtual ArmOperation <ExpressRouteCircuitConnectionResource> CreateOrUpdate(WaitUntil waitUntil, string connectionName, ExpressRouteCircuitConnectionData data, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(connectionName, nameof(connectionName)); Argument.AssertNotNull(data, nameof(data)); using var scope = _expressRouteCircuitConnectionClientDiagnostics.CreateScope("ExpressRouteCircuitConnectionCollection.CreateOrUpdate"); scope.Start(); try { var response = _expressRouteCircuitConnectionRestClient.CreateOrUpdate(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, connectionName, data, cancellationToken); var operation = new NetworkArmOperation <ExpressRouteCircuitConnectionResource>(new ExpressRouteCircuitConnectionOperationSource(Client), _expressRouteCircuitConnectionClientDiagnostics, Pipeline, _expressRouteCircuitConnectionRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, connectionName, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitUntil == WaitUntil.Completed) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }