Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
d0338ec
Base commit
ankursood23 Aug 13, 2024
ba7fcb2
Update to the base commit
ankursood23 Aug 13, 2024
3649637
Support for MemberType in NG cmdlet
ankursood23 Aug 13, 2024
c55484e
Resolving comments
ankursood23 Aug 13, 2024
7a86a5c
Cleanup help files
ankursood23 Aug 13, 2024
4ee3d4d
Readme file changes for Routing and NSG
ankursood23 Aug 13, 2024
6295a40
Merge branch 'release-network-2024-03-01' into ankursood/psUdrNsgDev
ankursood23 Aug 30, 2024
89b4438
Update README.md
ankursood23 Sep 4, 2024
d770063
Merge branch 'ankursood/psUdrNsgDev' of https://github.com/ankursood2…
ankursood23 Sep 4, 2024
116abdd
Resolving PR comments
ankursood23 Sep 6, 2024
fecae23
Update NetworkManagerTests.ps1
ankursood23 Sep 10, 2024
95f2958
Update NetworkManagerTests.ps1
ankursood23 Sep 10, 2024
2e4b694
Update NetworkManagerTests.ps1
ankursood23 Sep 10, 2024
ec04fe4
Update README.md
ankursood23 Sep 10, 2024
556e98d
Committing generated files
ankursood23 Sep 10, 2024
63866e2
Commit more gen files
ankursood23 Sep 10, 2024
ef37722
Commit more gen files
ankursood23 Sep 10, 2024
7338c78
Yet more gen files
ankursood23 Sep 10, 2024
64f686a
Update NetworkManagementClient.cs
ankursood23 Sep 11, 2024
cbd28bd
Update
ankursood23 Sep 11, 2024
5ca79ab
Help file updates
ankursood23 Sep 11, 2024
2d8beb1
Help file updates
ankursood23 Sep 11, 2024
61cef6b
Fix for failing checks
ankursood23 Sep 11, 2024
bd4e6de
Commit recording files
ankursood23 Sep 12, 2024
4955392
Merge branch 'release-network-2024-03-01' into ankursood/psUdrNsgDev
ankursood23 Sep 12, 2024
edc8504
Update to fix checks
ankursood23 Sep 13, 2024
87620a5
Merge branch 'ankursood/psUdrNsgDev' of https://github.com/ankursood2…
ankursood23 Sep 13, 2024
19ebad2
Update New-AzNetworkManagerRoutingRuleNextHop.md
ankursood23 Sep 13, 2024
2b39a67
Update
ankursood23 Sep 13, 2024
36a38e3
Update SignatureIssues.csv
ankursood23 Sep 13, 2024
b437e8f
Update SignatureIssues.csv
ankursood23 Sep 16, 2024
ded6b6f
Update New-AzNetworkManagerRoutingRuleNextHop.md
ankursood23 Sep 16, 2024
97b4583
Update collection property
ankursood23 Sep 16, 2024
3dee5aa
Update session recording files
ankursood23 Sep 16, 2024
41bfe4d
Merge branch 'release-network-2024-03-01' into ankursood/psUdrNsgDev
ankursood23 Sep 16, 2024
ab005cf
Update to test file
ankursood23 Sep 16, 2024
76a9960
Merge branch 'ankursood/psUdrNsgDev' of https://github.com/ankursood2…
ankursood23 Sep 16, 2024
b2c7420
Updating session record files
ankursood23 Sep 16, 2024
dc3eefa
Update
ankursood23 Sep 16, 2024
36eccb7
Update ChangeLog.md
msJinLei Sep 18, 2024
a093560
Resolving routing related PR comments
ankursood23 Sep 23, 2024
9a4c3d9
Resolving PR comments for NSG
ankursood23 Sep 23, 2024
a5fcb4d
Update test file
ankursood23 Sep 23, 2024
52763bc
Merge branch 'main' into network
Sep 23, 2024
f2e958f
Update help docs of Az.Network
Sep 23, 2024
a6a8696
Update
ankursood23 Sep 23, 2024
38f0efe
Merge branch 'ankursood/psUdrNsgDev' of https://github.com/ankursood2…
ankursood23 Sep 23, 2024
aa97f06
Reverting the previous change
ankursood23 Sep 24, 2024
9ff2103
Update to Get- and Set- cmdlets for Routing
ankursood23 Sep 24, 2024
d76978e
Update to routing commands
ankursood23 Sep 25, 2024
2892a8b
Updating routing cmdlets with Description
ankursood23 Sep 25, 2024
7bcf74a
Security User command updates
ankursood23 Sep 25, 2024
adfe271
Update security user command
ankursood23 Sep 25, 2024
e607f44
Minor update
ankursood23 Sep 25, 2024
e7898e8
Update with additional options and parameter set
ankursood23 Sep 25, 2024
46277f0
Merge branch 'main' into ankursood/psUdrNsgDev
ankursood23 Sep 26, 2024
f975a3c
Update the help doc of Az.Network
Sep 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/Accounts/Accounts/Utilities/CommandMappings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4484,6 +4484,12 @@
"Get-AzNetworkManagerSecurityAdminConfiguration": {},
"Get-AzNetworkManagerSecurityAdminRule": {},
"Get-AzNetworkManagerSecurityAdminRuleCollection": {},
"Get-AzNetworkManagerRoutingConfiguration": {},
"Get-AzNetworkManagerRoutingRule": {},
"Get-AzNetworkManagerRoutingRuleCollection": {},
"Get-AzNetworkManagerSecurityUserConfiguration": {},
"Get-AzNetworkManagerSecurityUserRule": {},
"Get-AzNetworkManagerSecurityUserRuleCollection": {},
"Get-AzNetworkManagerStaticMember": {},
"Get-AzNetworkManagerSubscriptionConnection": {},
"Get-AzNetworkProfile": {},
Expand Down Expand Up @@ -4703,6 +4709,8 @@
"New-AzNetworkInterfaceIpConfig": {},
"New-AzNetworkManager": {},
"New-AzNetworkManagerAddressPrefixItem": {},
"New-AzNetworkManagerRoutingRuleDestination": {},
"New-AzNetworkManagerRoutingRuleNextHop": {},
"New-AzNetworkManagerConnectivityConfiguration": {},
"New-AzNetworkManagerConnectivityGroupItem": {},
"New-AzNetworkManagerGroup": {},
Expand All @@ -4713,7 +4721,14 @@
"New-AzNetworkManagerSecurityAdminConfiguration": {},
"New-AzNetworkManagerSecurityAdminRule": {},
"New-AzNetworkManagerSecurityAdminRuleCollection": {},
"New-AzNetworkManagerRoutingConfiguration": {},
"New-AzNetworkManagerRoutingRule": {},
"New-AzNetworkManagerRoutingRuleCollection": {},
"New-AzNetworkManagerSecurityGroupItem": {},
"New-AzNetworkManagerSecurityUserConfiguration": {},
"New-AzNetworkManagerSecurityUserRule": {},
"New-AzNetworkManagerSecurityUserRuleCollection": {},
"New-AzNetworkManagerSecurityUserGroupItem": {},
"New-AzNetworkManagerStaticMember": {},
"New-AzNetworkManagerSubscriptionConnection": {},
"New-AzNetworkProfile": {},
Expand Down Expand Up @@ -4879,6 +4894,12 @@
"Remove-AzNetworkManagerSecurityAdminConfiguration": {},
"Remove-AzNetworkManagerSecurityAdminRule": {},
"Remove-AzNetworkManagerSecurityAdminRuleCollection": {},
"Remove-AzNetworkManagerRoutingConfiguration": {},
"Remove-AzNetworkManagerRoutingRule": {},
"Remove-AzNetworkManagerRoutingRuleCollection": {},
"Remove-AzNetworkManagerSecurityUserConfiguration": {},
"Remove-AzNetworkManagerSecurityUserRule": {},
"Remove-AzNetworkManagerSecurityUserRuleCollection": {},
"Remove-AzNetworkManagerStaticMember": {},
"Remove-AzNetworkManagerSubscriptionConnection": {},
"Remove-AzNetworkProfile": {},
Expand Down Expand Up @@ -5013,6 +5034,12 @@
"Set-AzNetworkManagerSecurityAdminConfiguration": {},
"Set-AzNetworkManagerSecurityAdminRule": {},
"Set-AzNetworkManagerSecurityAdminRuleCollection": {},
"Set-AzNetworkManagerRoutingConfiguration": {},
"Set-AzNetworkManagerRoutingRule": {},
"Set-AzNetworkManagerRoutingRuleCollection": {},
"Set-AzNetworkManagerSecurityUserConfiguration": {},
"Set-AzNetworkManagerSecurityUserRule": {},
"Set-AzNetworkManagerSecurityUserRuleCollection": {},
"Set-AzNetworkManagerSubscriptionConnection": {},
"Set-AzNetworkProfile": {},
"Set-AzNetworkSecurityGroup": {},
Expand Down
16 changes: 16 additions & 0 deletions src/Network/Network.Test/ScenarioTests/NetworkManagerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,22 @@ public void NetworkManagerSecurityAdminRuleCRUD()
TestRunner.RunTestScript("Test-NetworkManagerSecurityAdminRuleCRUD");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
[Trait(Category.Owner, NrpTeamAlias.nsmdev)]
public void NetworkManagerRoutingRuleCRUD()
{
TestRunner.RunTestScript("Test-NetworkManagerRoutingRuleCRUD");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
[Trait(Category.Owner, NrpTeamAlias.nsmdev)]
public void NetworkManagerSecurityUserRuleCRUD()
{
TestRunner.RunTestScript("Test-NetworkManagerSecurityUserRuleCRUD");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
[Trait(Category.Owner, NrpTeamAlias.nsmdev)]
Expand Down
271 changes: 271 additions & 0 deletions src/Network/Network.Test/ScenarioTests/NetworkManagerTests.ps1

Large diffs are not rendered by default.

30 changes: 29 additions & 1 deletion src/Network/Network/Az.Network.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,13 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
'Get-AzNetworkManagerScopeConnection',
'Get-AzNetworkManagerSecurityAdminConfiguration',
'Get-AzNetworkManagerSecurityAdminRule',
'Get-AzNetworkManagerSecurityAdminRuleCollection',
'Get-AzNetworkManagerSecurityAdminRuleCollection',
'Get-AzNetworkManagerRoutingConfiguration',
'Get-AzNetworkManagerRoutingRule',
'Get-AzNetworkManagerRoutingRuleCollection',
'Get-AzNetworkManagerSecurityUserConfiguration',
'Get-AzNetworkManagerSecurityUserRule',
'Get-AzNetworkManagerSecurityUserRuleCollection',
'Get-AzNetworkManagerStaticMember',
'Get-AzNetworkManagerSubscriptionConnection',
'Get-AzNetworkProfile', 'Get-AzNetworkSecurityGroup',
Expand Down Expand Up @@ -379,6 +385,8 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
'New-AzLocalNetworkGateway', 'New-AzNatGateway',
'New-AzNetworkInterface', 'New-AzNetworkInterfaceIpConfig',
'New-AzNetworkManager', 'New-AzNetworkManagerAddressPrefixItem',
'New-AzNetworkManagerRoutingRuleDestination',
'New-AzNetworkManagerRoutingRuleNextHop',
'New-AzNetworkManagerConnectivityConfiguration',
'New-AzNetworkManagerConnectivityGroupItem',
'New-AzNetworkManagerGroup', 'New-AzNetworkManagerHub',
Expand All @@ -387,7 +395,15 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
'New-AzNetworkManagerSecurityAdminConfiguration',
'New-AzNetworkManagerSecurityAdminRule',
'New-AzNetworkManagerSecurityAdminRuleCollection',
'New-AzNetworkManagerRoutingConfiguration',
'New-AzNetworkManagerRoutingRule',
'New-AzNetworkManagerRoutingRuleCollection',
'New-AzNetworkManagerSecurityUserConfiguration',
'New-AzNetworkManagerSecurityUserRule',
'New-AzNetworkManagerSecurityUserRuleCollection',
'New-AzNetworkManagerSecurityGroupItem',
'New-AzNetworkManagerRoutingGroupItem',
'New-AzNetworkManagerSecurityUserGroupItem',
'New-AzNetworkManagerStaticMember',
'New-AzNetworkManagerSubscriptionConnection',
'New-AzNetworkProfile', 'New-AzNetworkSecurityGroup',
Expand Down Expand Up @@ -509,6 +525,12 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
'Remove-AzNetworkManagerSecurityAdminConfiguration',
'Remove-AzNetworkManagerSecurityAdminRule',
'Remove-AzNetworkManagerSecurityAdminRuleCollection',
'Remove-AzNetworkManagerRoutingConfiguration',
'Remove-AzNetworkManagerRoutingRuleCollection',
'Remove-AzNetworkManagerRoutingRule',
'Remove-AzNetworkManagerSecurityUserConfiguration',
'Remove-AzNetworkManagerSecurityUserRuleCollection',
'Remove-AzNetworkManagerSecurityUserRule',
'Remove-AzNetworkManagerStaticMember',
'Remove-AzNetworkManagerSubscriptionConnection',
'Remove-AzNetworkProfile', 'Remove-AzNetworkSecurityGroup',
Expand Down Expand Up @@ -609,6 +631,12 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
'Set-AzNetworkManagerSecurityAdminConfiguration',
'Set-AzNetworkManagerSecurityAdminRule',
'Set-AzNetworkManagerSecurityAdminRuleCollection',
'Set-AzNetworkManagerRoutingConfiguration',
'Set-AzNetworkManagerRoutingRuleCollection',
'Set-AzNetworkManagerRoutingRule',
'Set-AzNetworkManagerSecurityUserConfiguration',
'Set-AzNetworkManagerSecurityUserRuleCollection',
'Set-AzNetworkManagerSecurityUserRule',
'Set-AzNetworkManagerSubscriptionConnection',
'Set-AzNetworkProfile', 'Set-AzNetworkSecurityGroup',
'Set-AzNetworkSecurityRuleConfig',
Expand Down
20 changes: 20 additions & 0 deletions src/Network/Network/Common/NetworkResourceManagerProfile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2305,6 +2305,16 @@ private static void Initialize()
cfg.CreateMap<ANM.PSNetworkManagerSecurityAdminRuleCollection, MNM.AdminRuleCollection>();
cfg.CreateMap<ANM.PSNetworkManagerScopeConnection, MNM.ScopeConnection>();
cfg.CreateMap<ANM.PSNetworkManagerConnection, MNM.NetworkManagerConnection>();
cfg.CreateMap<ANM.PSNetworkManagerRoutingRule, MNM.RoutingRule>();
cfg.CreateMap<ANM.PSNetworkManagerRoutingRuleCollection, MNM.RoutingRuleCollection>();
cfg.CreateMap<ANM.PSNetworkManagerRoutingConfiguration, MNM.NetworkManagerRoutingConfiguration>();
cfg.CreateMap<ANM.PSNetworkManagerRoutingGroupItem, MNM.NetworkManagerRoutingGroupItem>();
cfg.CreateMap<ANM.PSNetworkManagerRoutingRuleDestination, MNM.RoutingRuleRouteDestination>();
cfg.CreateMap<ANM.PSNetworkManagerRoutingRuleNextHop, MNM.RoutingRuleNextHop>();
cfg.CreateMap<ANM.PSNetworkManagerSecurityUserRule, MNM.SecurityUserRule>();
cfg.CreateMap<ANM.PSNetworkManagerSecurityUserRuleCollection, MNM.SecurityUserRuleCollection>();
cfg.CreateMap<ANM.PSNetworkManagerSecurityUserConfiguration, MNM.SecurityUserConfiguration>();
cfg.CreateMap<ANM.PSNetworkManagerSecurityUserGroupItem, MNM.SecurityUserGroupItem>();

// MNM to CNM
cfg.CreateMap<MNM.NetworkManager, ANM.PSNetworkManager>();
Expand Down Expand Up @@ -2344,6 +2354,16 @@ private static void Initialize()
cfg.CreateMap<MNM.AdminRuleCollection, ANM.PSNetworkManagerSecurityAdminRuleCollection>();
cfg.CreateMap<MNM.ScopeConnection, ANM.PSNetworkManagerScopeConnection>();
cfg.CreateMap<MNM.NetworkManagerConnection, ANM.PSNetworkManagerConnection>();
cfg.CreateMap<MNM.RoutingRule, ANM.PSNetworkManagerRoutingRule>();
cfg.CreateMap<MNM.RoutingRuleCollection, ANM.PSNetworkManagerRoutingRuleCollection>();
cfg.CreateMap<MNM.NetworkManagerRoutingConfiguration, ANM.PSNetworkManagerRoutingConfiguration>();
cfg.CreateMap<MNM.RoutingRuleRouteDestination, ANM.PSNetworkManagerRoutingRuleDestination>();
cfg.CreateMap<MNM.RoutingRuleNextHop, ANM.PSNetworkManagerRoutingRuleNextHop>();
cfg.CreateMap<MNM.NetworkManagerRoutingGroupItem, ANM.PSNetworkManagerRoutingGroupItem>();
cfg.CreateMap<MNM.SecurityUserRule, ANM.PSNetworkManagerSecurityUserRule>();
cfg.CreateMap<MNM.SecurityUserRuleCollection, ANM.PSNetworkManagerSecurityUserRuleCollection>();
cfg.CreateMap<MNM.SecurityUserConfiguration, ANM.PSNetworkManagerSecurityUserConfiguration>();
cfg.CreateMap<MNM.SecurityUserGroupItem, ANM.PSNetworkManagerSecurityUserGroupItem>();

});
_mapper = config.CreateMapper();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// Copyright (c) Microsoft. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//


namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json;
using WindowsAzure.Commands.Common.Attributes;

public class PSNetworkManagerRoutingConfiguration : PSNetworkManagerBaseResource
{
public string NetworkManagerName { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using Newtonsoft.Json;

namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
public class PSNetworkManagerRoutingGroupItem
{
public string NetworkGroupId { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//
// Copyright (c) Microsoft. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//


namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
using Microsoft.Azure.Management.Network.Models;
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using WindowsAzure.Commands.Common.Attributes;

public class PSNetworkManagerRoutingRule : PSNetworkManagerBaseResource
{
public PSNetworkManagerRoutingRuleDestination Destination { get; set; }

public PSNetworkManagerRoutingRuleNextHop NextHop { get; set; }

public string NetworkManagerName { get; set; }

public string RoutingConfigurationName { get; set; }

public string RuleCollectionName { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// Copyright (c) Microsoft. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//


namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Management.Automation;

public class PSNetworkManagerRoutingRuleCollection : PSNetworkManagerBaseResource
{
public string NetworkManagerName { get; set; }
public string RoutingConfigurationName { get; set; }

[JsonProperty(Order = 1)]
public IList<PSNetworkManagerRoutingGroupItem> AppliesTo { get; set; }

public SwitchParameter DisableBgpRoutePropagation { get; set; }

[JsonIgnore]
public string AppliesToText
{
get { return JsonConvert.SerializeObject(AppliesTo, Formatting.Indented, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); }
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using Microsoft.Azure.Management.Network.Models;
using System;
using System.Collections.Generic;
using System.Text;

namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
public class PSNetworkManagerRoutingRuleDestination
{
public string DestinationAddress { get; set; }

public string Type { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using Microsoft.Azure.Management.Network.Models;
using System;
using System.Collections.Generic;
using System.Text;

namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
public class PSNetworkManagerRoutingRuleNextHop
{
public string NextHopAddress { get; set; }

public string NextHopType { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// Copyright (c) Microsoft. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//


namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
using System.Collections;
using System.Collections.Generic;
using Newtonsoft.Json;
using WindowsAzure.Commands.Common.Attributes;

public class PSNetworkManagerSecurityUserConfiguration : PSNetworkManagerBaseResource
{
public string NetworkManagerName { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using Newtonsoft.Json;

namespace Microsoft.Azure.Commands.Network.Models.NetworkManager
{
public class PSNetworkManagerSecurityUserGroupItem
{
public string NetworkGroupId { get; set; }
}
}
Loading