@@ -19,24 +19,26 @@ namespace Microsoft.Azure.Commands.Network
1919 using Microsoft . Azure . Commands . ResourceManager . Common . Tags ;
2020 using Microsoft . Azure . Management . Internal . Resources . Utilities . Models ;
2121 using Microsoft . Azure . Management . Network ;
22+ using Microsoft . Azure . Management . Network . Models ;
2223 using Microsoft . WindowsAzure . Commands . Utilities . Common ;
2324 using System ;
2425 using System . Collections ;
2526 using System . Management . Automation ;
2627 using MNM = Microsoft . Azure . Management . Network . Models ;
2728
28- [ Cmdlet ( VerbsCommon . Set , ResourceManager . Common . AzureRMConstants . AzureRMPrefix + "MasterCustomIpPrefix " , SupportsShouldProcess = true ) , OutputType ( typeof ( PSMasterCustomIpPrefix ) ) ]
29- public class SetAzureMasterCustomIpPrefixCommand : MasterCustomIpPrefixBaseCmdlet
29+ [ Cmdlet ( VerbsData . Update , ResourceManager . Common . AzureRMConstants . AzureRMPrefix + "MasterCustomIpPrefixTags " , SupportsShouldProcess = true ) , OutputType ( typeof ( PSMasterCustomIpPrefix ) ) ]
30+ public class UpdateAzureMasterCustomIpPrefixTagsCommand : MasterCustomIpPrefixBaseCmdlet
3031 {
31- private const string SetByNameParameterSet = "SetByNameParameterSet " ;
32- private const string SetByInputObjectParameterSet = "SetByInputObjectParameterSet " ;
33- private const string SetByResourceIdParameterSet = "SetByResourceIdParameterSet " ;
32+ private const string UpdateByNameParameterSet = "UpdateByNameParameterSet " ;
33+ private const string UpdateByInputObjectParameterSet = "UpdateByInputObjectParameterSet " ;
34+ private const string UpdateByResourceIdParameterSet = "UpdateByResourceIdParameterSet " ;
3435
36+ [ Alias ( "ResourceName" ) ]
3537 [ Parameter (
3638 Mandatory = false ,
3739 ValueFromPipelineByPropertyName = true ,
3840 HelpMessage = "The resource name." ,
39- ParameterSetName = SetByNameParameterSet ) ]
41+ ParameterSetName = UpdateByNameParameterSet ) ]
4042 [ ResourceNameCompleter ( "Microsoft.Network/masterCustomIpPrefix" , "ResourceGroupName" ) ]
4143 [ ValidateNotNullOrEmpty ]
4244 [ SupportsWildcards ]
@@ -46,7 +48,7 @@ public class SetAzureMasterCustomIpPrefixCommand : MasterCustomIpPrefixBaseCmdle
4648 Mandatory = false ,
4749 ValueFromPipelineByPropertyName = true ,
4850 HelpMessage = "The resource group name." ,
49- ParameterSetName = SetByNameParameterSet ) ]
51+ ParameterSetName = UpdateByNameParameterSet ) ]
5052 [ ValidateNotNullOrEmpty ]
5153 [ SupportsWildcards ]
5254 public virtual string ResourceGroupName { get ; set ; }
@@ -55,35 +57,25 @@ public class SetAzureMasterCustomIpPrefixCommand : MasterCustomIpPrefixBaseCmdle
5557 Mandatory = false ,
5658 ValueFromPipeline = true ,
5759 HelpMessage = "The MasterCustomIpPrefix to set." ,
58- ParameterSetName = SetByInputObjectParameterSet ) ]
60+ ParameterSetName = UpdateByInputObjectParameterSet ) ]
5961 public PSMasterCustomIpPrefix InputObject { get ; set ; }
6062
6163 [ Parameter (
6264 Mandatory = false ,
6365 ValueFromPipelineByPropertyName = true ,
6466 HelpMessage = "The resource Id." ,
65- ParameterSetName = SetByResourceIdParameterSet ) ]
67+ ParameterSetName = UpdateByResourceIdParameterSet ) ]
6668 [ ValidateNotNullOrEmpty ]
6769 [ SupportsWildcards ]
6870 public virtual string ResourceId { get ; set ; }
6971
70- [ Parameter (
71- Mandatory = true ,
72- ValueFromPipelineByPropertyName = true ,
73- HelpMessage = "The MasterCustomIpPrefix location." ,
74- ParameterSetName = SetByResourceIdParameterSet ) ]
75- [ Parameter ( Mandatory = false , ParameterSetName = SetByInputObjectParameterSet ) ]
76- [ LocationCompleter ( "Microsoft.Network/masterCustomIpPrefix" ) ]
77- [ ValidateNotNullOrEmpty ]
78- public string Location { get ; set ; }
79-
8072 [ Parameter (
8173 Mandatory = true ,
8274 ValueFromPipelineByPropertyName = true ,
8375 HelpMessage = "A hashtable which represents resource tags." ,
84- ParameterSetName = SetByNameParameterSet ) ]
85- [ Parameter ( Mandatory = true , ParameterSetName = SetByResourceIdParameterSet ) ]
86- [ Parameter ( Mandatory = false , ParameterSetName = SetByInputObjectParameterSet ) ]
76+ ParameterSetName = UpdateByNameParameterSet ) ]
77+ [ Parameter ( Mandatory = true , ParameterSetName = UpdateByResourceIdParameterSet ) ]
78+ [ Parameter ( Mandatory = false , ParameterSetName = UpdateByInputObjectParameterSet ) ]
8779 public Hashtable Tag { get ; set ; }
8880
8981 [ Parameter ( Mandatory = false , HelpMessage = "Run cmdlet in the background" ) ]
@@ -103,21 +95,24 @@ public override void Execute()
10395 {
10496 this . ResourceGroupName = InputObject . ResourceGroupName ;
10597 this . Name = InputObject . Name ;
106- this . Location = this . IsParameterBound ( c => c . Location ) ? Location : InputObject . Location ;
10798 }
10899
109- if ( ! NetworkBaseCmdlet . IsResourcePresent ( ( ) => GetMasterCustomIpPrefix ( this . ResourceGroupName , this . Name ) ) )
100+ PSMasterCustomIpPrefix psModel ;
101+ if ( this . IsParameterBound ( c => c . InputObject ) )
110102 {
111- throw new ArgumentException ( Microsoft . Azure . Commands . Network . Properties . Resources . ResourceNotFound ) ;
103+ psModel = InputObject ;
112104 }
113-
114-
115- var psModel = new PSMasterCustomIpPrefix ( )
105+ else
116106 {
117- Name = InputObject . Name ,
118- ResourceGroupName = InputObject . ResourceGroupName ,
119- Location = this . Location ,
120- } ;
107+ var existingPsModel = GetMasterCustomIpPrefix ( this . ResourceGroupName , this . Name ) ;
108+
109+ psModel = new PSMasterCustomIpPrefix ( )
110+ {
111+ Name = this . Name ,
112+ ResourceGroupName = this . ResourceGroupName ,
113+ Location = existingPsModel . Location ,
114+ } ;
115+ }
121116 var sdkModel = NetworkResourceManagerProfile . Mapper . Map < MNM . MasterCustomIpPrefix > ( psModel ) ;
122117
123118 if ( this . IsParameterBound ( c => c . InputObject ) )
@@ -132,7 +127,8 @@ public override void Execute()
132127 if ( this . ShouldProcess ( $ "Name: { this . Name } ResourceGroup: { this . ResourceGroupName } ", "Set existing MasterCustomIpPrefix" ) )
133128 {
134129 // Execute the PUT MasterCustomIpPrefix Policy call
135- var modifiedSdkModel = this . MasterCustomIpPrefixClient . CreateOrUpdate ( this . ResourceGroupName , this . Name , sdkModel ) ;
130+ TagsObject tagsObj = new TagsObject ( sdkModel . Tags ) ;
131+ var modifiedSdkModel = this . MasterCustomIpPrefixClient . UpdateTags ( this . ResourceGroupName , this . Name , tagsObj ) ;
136132 var modifiedPsModel = this . ToPsMasterCustomIpPrefix ( modifiedSdkModel ) ;
137133 modifiedPsModel . ResourceGroupName = NetworkBaseCmdlet . GetResourceGroup ( modifiedPsModel . Id ) ;
138134 WriteObject ( modifiedPsModel ) ;
0 commit comments