@@ -50,60 +50,60 @@ public class NewAzManagementGroupDeploymentStack : DeploymentStacksCmdletBase
50
50
internal const string ParameterObjectTemplateSpecParameterSetName = "ByTemplateSpecWithParameterObject" ;
51
51
52
52
[ Alias ( "StackName" ) ]
53
- [ Parameter ( Position = 0 , Mandatory = true , ValueFromPipelineByPropertyName = true ,
54
- HelpMessage = "The name of the deploymentStack to create" ) ]
53
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true ,
54
+ HelpMessage = "The name of the deploymentStack to create. " ) ]
55
55
[ ValidateNotNullOrEmpty ]
56
56
public string Name { get ; set ; }
57
57
58
- [ Parameter ( Position = 1 , Mandatory = true , ValueFromPipelineByPropertyName = true ,
59
- HelpMessage = "The id of the management group that the deploymentStack will be deployed into" ) ]
58
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true ,
59
+ HelpMessage = "The id of the management group that the deploymentStack will be deployed into. " ) ]
60
60
[ ValidateNotNullOrEmpty ]
61
61
public string ManagementGroupId { get ; set ; }
62
62
63
- [ Parameter ( Position = 2 , ParameterSetName = ParameterFileTemplateFileParameterSetName ,
64
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
65
- [ Parameter ( Position = 2 , ParameterSetName = ParameterUriTemplateFileParameterSetName ,
66
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
67
- [ Parameter ( Position = 2 , ParameterSetName = ParameterObjectTemplateFileParameterSetName ,
68
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
69
- [ Parameter ( Position = 2 , ParameterSetName = ParameterlessTemplateFileParameterSetName ,
70
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
63
+ [ Parameter ( ParameterSetName = ParameterFileTemplateFileParameterSetName ,
64
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack. " ) ]
65
+ [ Parameter ( ParameterSetName = ParameterUriTemplateFileParameterSetName ,
66
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack. " ) ]
67
+ [ Parameter ( ParameterSetName = ParameterObjectTemplateFileParameterSetName ,
68
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack. " ) ]
69
+ [ Parameter ( ParameterSetName = ParameterlessTemplateFileParameterSetName ,
70
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack. " ) ]
71
71
public string TemplateFile { get ; set ; }
72
72
73
- [ Parameter ( Position = 2 , ParameterSetName = ParameterFileTemplateUriParameterSetName ,
74
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
75
- [ Parameter ( Position = 2 , ParameterSetName = ParameterUriTemplateUriParameterSetName ,
76
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
77
- [ Parameter ( Position = 2 , ParameterSetName = ParameterObjectTemplateUriParameterSetName ,
78
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
79
- [ Parameter ( Position = 2 , ParameterSetName = ParameterlessTemplateUriParameterSetName ,
80
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
73
+ [ Parameter ( ParameterSetName = ParameterFileTemplateUriParameterSetName ,
74
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack. " ) ]
75
+ [ Parameter ( ParameterSetName = ParameterUriTemplateUriParameterSetName ,
76
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack. " ) ]
77
+ [ Parameter ( ParameterSetName = ParameterObjectTemplateUriParameterSetName ,
78
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack. " ) ]
79
+ [ Parameter ( ParameterSetName = ParameterlessTemplateUriParameterSetName ,
80
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack. " ) ]
81
81
public string TemplateUri { get ; set ; }
82
82
83
- [ Parameter ( Position = 2 , ParameterSetName = ParameterFileTemplateSpecParameterSetName ,
84
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
85
- [ Parameter ( Position = 2 , ParameterSetName = ParameterUriTemplateSpecParameterSetName ,
86
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
87
- [ Parameter ( Position = 2 , ParameterSetName = ParameterObjectTemplateSpecParameterSetName ,
88
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
89
- [ Parameter ( Position = 2 , ParameterSetName = ParameterlessTemplateSpecParameterSetName ,
90
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
83
+ [ Parameter ( ParameterSetName = ParameterFileTemplateSpecParameterSetName ,
84
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack. " ) ]
85
+ [ Parameter ( ParameterSetName = ParameterUriTemplateSpecParameterSetName ,
86
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack. " ) ]
87
+ [ Parameter ( ParameterSetName = ParameterObjectTemplateSpecParameterSetName ,
88
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack. " ) ]
89
+ [ Parameter ( ParameterSetName = ParameterlessTemplateSpecParameterSetName ,
90
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack. " ) ]
91
91
public string TemplateSpecId { get ; set ; }
92
92
93
- [ Parameter ( Position = 3 , ParameterSetName = ParameterFileTemplateFileParameterSetName ,
94
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template" ) ]
95
- [ Parameter ( Position = 3 , ParameterSetName = ParameterFileTemplateUriParameterSetName ,
96
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template" ) ]
97
- [ Parameter ( Position = 3 , ParameterSetName = ParameterFileTemplateSpecParameterSetName ,
98
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template" ) ]
93
+ [ Parameter ( ParameterSetName = ParameterFileTemplateFileParameterSetName ,
94
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template. " ) ]
95
+ [ Parameter ( ParameterSetName = ParameterFileTemplateUriParameterSetName ,
96
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template. " ) ]
97
+ [ Parameter ( ParameterSetName = ParameterFileTemplateSpecParameterSetName ,
98
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template. " ) ]
99
99
public string TemplateParameterFile { get ; set ; }
100
100
101
- [ Parameter ( Position = 3 , ParameterSetName = ParameterUriTemplateFileParameterSetName ,
102
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template" ) ]
103
- [ Parameter ( Position = 3 , ParameterSetName = ParameterUriTemplateUriParameterSetName ,
104
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template" ) ]
105
- [ Parameter ( Position = 3 , ParameterSetName = ParameterUriTemplateSpecParameterSetName ,
106
- Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template" ) ]
101
+ [ Parameter ( ParameterSetName = ParameterUriTemplateFileParameterSetName ,
102
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template. " ) ]
103
+ [ Parameter ( ParameterSetName = ParameterUriTemplateUriParameterSetName ,
104
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template. " ) ]
105
+ [ Parameter ( ParameterSetName = ParameterUriTemplateSpecParameterSetName ,
106
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template. " ) ]
107
107
public string TemplateParameterUri { get ; set ; }
108
108
109
109
[ Parameter ( ParameterSetName = ParameterObjectTemplateFileParameterSetName ,
@@ -160,7 +160,7 @@ public class NewAzManagementGroupDeploymentStack : DeploymentStacksCmdletBase
160
160
HelpMessage = "Do not ask for confirmation when overwriting an existing stack." ) ]
161
161
public SwitchParameter Force { get ; set ; }
162
162
163
- [ Parameter ( Mandatory = false , HelpMessage = "Run cmdlet in the background" ) ]
163
+ [ Parameter ( Mandatory = false , HelpMessage = "Run cmdlet in the background. " ) ]
164
164
public SwitchParameter AsJob { get ; set ; }
165
165
166
166
#endregion
@@ -173,6 +173,7 @@ protected override void OnProcessRecord()
173
173
{
174
174
Hashtable parameters = new Hashtable ( ) ;
175
175
string filePath = "" ;
176
+ string parameterFilePath = "" ;
176
177
switch ( ParameterSetName )
177
178
{
178
179
case ParameterlessTemplateFileParameterSetName :
@@ -188,7 +189,13 @@ protected override void OnProcessRecord()
188
189
break ;
189
190
case ParameterFileTemplateSpecParameterSetName :
190
191
case ParameterFileTemplateUriParameterSetName :
191
- parameters = this . GetParameterObject ( TemplateParameterFile ) ;
192
+ parameterFilePath = this . TryResolvePath ( TemplateParameterFile ) ;
193
+ if ( ! File . Exists ( parameterFilePath ) )
194
+ {
195
+ throw new PSInvalidOperationException (
196
+ string . Format ( ProjectResources . InvalidFilePath , TemplateParameterFile ) ) ;
197
+ }
198
+ parameters = this . GetParameterObject ( parameterFilePath ) ;
192
199
break ;
193
200
case ParameterFileTemplateFileParameterSetName :
194
201
filePath = this . TryResolvePath ( TemplateFile ) ;
@@ -198,7 +205,14 @@ protected override void OnProcessRecord()
198
205
string . Format ( ProjectResources . InvalidFilePath , TemplateFile ) ) ;
199
206
}
200
207
filePath = ResolveBicepFile ( filePath ) ;
201
- parameters = this . GetParameterObject ( TemplateParameterFile ) ;
208
+
209
+ parameterFilePath = this . TryResolvePath ( TemplateParameterFile ) ;
210
+ if ( ! File . Exists ( parameterFilePath ) )
211
+ {
212
+ throw new PSInvalidOperationException (
213
+ string . Format ( ProjectResources . InvalidFilePath , TemplateParameterFile ) ) ;
214
+ }
215
+ parameters = this . GetParameterObject ( parameterFilePath ) ;
202
216
TemplateUri = filePath ;
203
217
break ;
204
218
case ParameterObjectTemplateFileParameterSetName :
@@ -221,6 +235,10 @@ protected override void OnProcessRecord()
221
235
var shouldDeleteResources = ( DeleteAll . ToBool ( ) || DeleteResources . ToBool ( ) ) ? true : false ;
222
236
var shouldDeleteResourceGroups = ( DeleteAll . ToBool ( ) || DeleteResourceGroups . ToBool ( ) ) ? true : false ;
223
237
238
+
239
+ // construct deploymentScope if ResourceGroup was provided
240
+ var deploymentScope = "/subscriptions/" + DeploymentSubscriptionId ;
241
+
224
242
Action createOrUpdateAction = ( ) =>
225
243
{
226
244
var deploymentStack = DeploymentStacksSdkClient . ManagementGroupCreateOrUpdateDeploymentStack (
@@ -235,7 +253,7 @@ protected override void OnProcessRecord()
235
253
resourcesCleanupAction : shouldDeleteResources ? "delete" : "detach" ,
236
254
resourceGroupsCleanupAction : shouldDeleteResourceGroups ? "delete" : "detach" ,
237
255
managementGroupsCleanupAction : "detach" ,
238
- DeploymentSubscriptionId ,
256
+ deploymentScope ,
239
257
DenySettingsMode . ToString ( ) ,
240
258
DenySettingsExcludedPrincipals ,
241
259
DenySettingsExcludedActions ,
0 commit comments