@@ -31,15 +31,8 @@ public class SetAzureBGPPeeringCommand : ExpressRouteBaseCmdlet
31
31
[ ValidateNotNullOrEmpty ]
32
32
public string AdvertisedPublicPrefixes ;
33
33
34
- [ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Advertised Public Prefixes for Ipv6" ) ]
35
- [ ValidateNotNullOrEmpty ]
36
- public string AdvertisedPublicPrefixesIpv6 ;
37
-
38
34
[ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Customer AS number" ) ]
39
- public UInt32 CustomerAsn { get ; set ; }
40
-
41
- [ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Customer AS number for Ipv6" ) ]
42
- public UInt32 CustomerAsnIpv6 { get ; set ; }
35
+ public UInt32 ? CustomerAsn { get ; set ; }
43
36
44
37
[ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true ,
45
38
HelpMessage = "Peer Asn" ) ]
@@ -49,24 +42,13 @@ public class SetAzureBGPPeeringCommand : ExpressRouteBaseCmdlet
49
42
[ ValidateNotNullOrEmpty ]
50
43
public string PrimaryPeerSubnet { get ; set ; }
51
44
52
- [ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Primary Peer Subnet for Ipv6" ) ]
53
- [ ValidateNotNullOrEmpty ]
54
- public string PrimaryPeerSubnetIpv6 { get ; set ; }
55
-
56
45
[ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Routing Registry Name for Prefix Validation" ) ]
57
46
public string RoutingRegistryName { get ; set ; }
58
47
59
- [ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Routing Registry Name for Prefix Validation for Ipv6" ) ]
60
- public string RoutingRegistryNameIpv6 { get ; set ; }
61
-
62
48
[ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Secondary Peer Subnet" ) ]
63
49
[ ValidateNotNullOrEmpty ]
64
50
public string SecondaryPeerSubnet { get ; set ; }
65
51
66
- [ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Secondary Peer Subnet for Ipv6" ) ]
67
- [ ValidateNotNullOrEmpty ]
68
- public string SecondaryPeerSubnetIpv6 { get ; set ; }
69
-
70
52
[ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Shared Key" ) ]
71
53
[ ValidateNotNullOrEmpty ]
72
54
public string SharedKey { get ; set ; }
@@ -75,19 +57,30 @@ public class SetAzureBGPPeeringCommand : ExpressRouteBaseCmdlet
75
57
public UInt32 ? VlanId { get ; set ; }
76
58
77
59
[ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true , HelpMessage = "Bgp Peering Access Type: Microsoft, Public or Private" ) ]
60
+ [ ValidateSet ( "Microsoft" , "Public" , "Private" ) ]
78
61
[ DefaultValue ( "Private" ) ]
79
62
public BgpPeeringAccessType AccessType { get ; set ; }
80
63
64
+ [ Parameter ( Mandatory = false , HelpMessage = "Bgp Peer Address Type: IPv4, IPv6" ) ]
65
+ [ ValidateSet ( "IPv4" , "IPv6" ) ]
66
+ [ DefaultValue ( "IPv4" ) ]
67
+ public PeerAddressTypeValues PeerAddressType { get ; set ; }
68
+
81
69
public override void ExecuteCmdlet ( )
82
70
{
83
71
try
84
72
{
85
73
var route = ExpressRouteClient . GetAzureBGPPeering ( ServiceKey , AccessType ) ;
86
- var updatedRoute = ExpressRouteClient . UpdateAzureBGPPeering ( ServiceKey , AccessType , CustomerAsn , CustomerAsnIpv6 ,
87
- PeerAsn . HasValue ? PeerAsn . Value : route . PeerAsn , PrimaryPeerSubnet ?? route . PrimaryPeerSubnet , PrimaryPeerSubnetIpv6 ?? route . PrimaryPeerSubnetIpv6 ,
88
- RoutingRegistryName , RoutingRegistryNameIpv6 , SecondaryPeerSubnet ?? route . SecondaryPeerSubnet , SecondaryPeerSubnetIpv6 ?? route . SecondaryPeerSubnetIpv6 ,
89
- VlanId . HasValue ? VlanId . Value : route . VlanId ,
90
- SharedKey . Trim ( ) ) ;
74
+
75
+ var advertisedPublicPrefixes = AdvertisedPublicPrefixes ?? ( ( PeerAddressType == PeerAddressTypeValues . IPv4 ) ? route . AdvertisedPublicPrefixes : route . AdvertisedPublicPrefixesIpv6 ) ;
76
+ var routingRegistryName = RoutingRegistryName ?? ( ( PeerAddressType == PeerAddressTypeValues . IPv4 ) ? route . RoutingRegistryName : route . RoutingRegistryNameIpv6 ) ;
77
+ var customerAsn = ( CustomerAsn . HasValue ) ? CustomerAsn . Value : ( ( PeerAddressType == PeerAddressTypeValues . IPv4 ) ? route . CustomerAutonomousSystemNumber : route . CustomerAutonomousSystemNumberIpv6 ) ;
78
+
79
+ var updatedRoute = ExpressRouteClient . UpdateAzureBGPPeering ( ServiceKey , PeerAddressType , AccessType ,
80
+ advertisedPublicPrefixes , customerAsn , PeerAsn . HasValue ? PeerAsn . Value : route . PeerAsn , PrimaryPeerSubnet ,
81
+ routingRegistryName , SecondaryPeerSubnet , VlanId . HasValue ? VlanId . Value : route . VlanId ,
82
+ string . IsNullOrWhiteSpace ( SharedKey ) ? null : SharedKey . Trim ( ) ) ;
83
+
91
84
WriteObject ( updatedRoute , false ) ;
92
85
}
93
86
catch
@@ -102,18 +95,17 @@ public override void ExecuteCmdlet()
102
95
throw new ArgumentException ( Resources . VlanIdRequired ) ;
103
96
}
104
97
105
- if ( PrimaryPeerSubnet == null && PrimaryPeerSubnetIpv6 == null )
98
+ if ( PrimaryPeerSubnet == null )
106
99
{
107
100
throw new ArgumentException ( Resources . PrimaryPeerSubnetRequired ) ;
108
101
}
109
102
110
- if ( SecondaryPeerSubnet == null && SecondaryPeerSubnetIpv6 == null )
103
+ if ( SecondaryPeerSubnet == null )
111
104
{
112
105
throw new ArgumentException ( Resources . SecondaryPeerSubnetRequired ) ;
113
106
}
114
107
115
- var newRoute = ExpressRouteClient . NewAzureBGPPeering ( ServiceKey , AdvertisedPublicPrefixes , AdvertisedPublicPrefixesIpv6 , CustomerAsn , CustomerAsnIpv6 ,
116
- PeerAsn . Value , PrimaryPeerSubnet , PrimaryPeerSubnetIpv6 , RoutingRegistryName , RoutingRegistryNameIpv6 , SecondaryPeerSubnet , SecondaryPeerSubnetIpv6 ,
108
+ var newRoute = ExpressRouteClient . NewAzureBGPPeering ( ServiceKey , PeerAddressType , AdvertisedPublicPrefixes , CustomerAsn . Value , PeerAsn . Value , PrimaryPeerSubnet , RoutingRegistryName , SecondaryPeerSubnet ,
117
109
VlanId . Value , AccessType , SharedKey ) ;
118
110
WriteObject ( newRoute ) ;
119
111
}
0 commit comments