@@ -45,6 +45,10 @@ public class NewAzResourceGroupDeploymentStack : DeploymentStacksCmdletBase
45
45
internal const string ParameterUriTemplateUriParameterSetName = "ByTemplateUriWithParameterUri" ;
46
46
internal const string ParameterUriTemplateSpecParameterSetName = "ByTemplateSpecWithParameterUri" ;
47
47
48
+ internal const string ParameterObjectTemplateFileParameterSetName = "ByTemplateFileWithParameterObject" ;
49
+ internal const string ParameterObjectTemplateUriParameterSetName = "ByTemplateUriWithParameterObject" ;
50
+ internal const string ParameterObjectTemplateSpecParameterSetName = "ByTemplateSpecWithParameterObject" ;
51
+
48
52
[ Flags ]
49
53
public enum updateBehvaiorEnum { detachResources , purgeResources }
50
54
@@ -64,6 +68,8 @@ public enum updateBehvaiorEnum { detachResources, purgeResources }
64
68
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
65
69
[ Parameter ( Position = 2 , ParameterSetName = ParameterUriTemplateFileParameterSetName ,
66
70
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
71
+ [ Parameter ( Position = 2 , ParameterSetName = ParameterObjectTemplateFileParameterSetName ,
72
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
67
73
[ Parameter ( Position = 2 , ParameterSetName = ParameterlessTemplateFileParameterSetName ,
68
74
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "TemplateFile to be used to create the stack" ) ]
69
75
public string TemplateFile { get ; set ; }
@@ -72,6 +78,8 @@ public enum updateBehvaiorEnum { detachResources, purgeResources }
72
78
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
73
79
[ Parameter ( Position = 2 , ParameterSetName = ParameterUriTemplateUriParameterSetName ,
74
80
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
81
+ [ Parameter ( Position = 2 , ParameterSetName = ParameterObjectTemplateUriParameterSetName ,
82
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
75
83
[ Parameter ( Position = 2 , ParameterSetName = ParameterlessTemplateUriParameterSetName ,
76
84
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Template to be used to create the stack" ) ]
77
85
public string TemplateUri { get ; set ; }
@@ -80,6 +88,8 @@ public enum updateBehvaiorEnum { detachResources, purgeResources }
80
88
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
81
89
[ Parameter ( Position = 2 , ParameterSetName = ParameterUriTemplateSpecParameterSetName ,
82
90
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
91
+ [ Parameter ( Position = 2 , ParameterSetName = ParameterObjectTemplateSpecParameterSetName ,
92
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
83
93
[ Parameter ( Position = 2 , ParameterSetName = ParameterlessTemplateSpecParameterSetName ,
84
94
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "ResourceId of the TemplateSpec to be used to create the stack" ) ]
85
95
public string TemplateSpecId { get ; set ; }
@@ -90,15 +100,23 @@ public enum updateBehvaiorEnum { detachResources, purgeResources }
90
100
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template" ) ]
91
101
[ Parameter ( Position = 3 , ParameterSetName = ParameterFileTemplateSpecParameterSetName ,
92
102
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Parameter file to use for the template" ) ]
93
- public string ParameterFile { get ; set ; }
103
+ public string TemplateParameterFile { get ; set ; }
94
104
95
105
[ Parameter ( Position = 3 , ParameterSetName = ParameterUriTemplateFileParameterSetName ,
96
106
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template" ) ]
97
107
[ Parameter ( Position = 3 , ParameterSetName = ParameterUriTemplateUriParameterSetName ,
98
108
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template" ) ]
99
109
[ Parameter ( Position = 3 , ParameterSetName = ParameterUriTemplateSpecParameterSetName ,
100
110
Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "Location of the Parameter file to use for the template" ) ]
101
- public string ParameterUri { get ; set ; }
111
+ public string TemplateParameterUri { get ; set ; }
112
+
113
+ [ Parameter ( ParameterSetName = ParameterObjectTemplateFileParameterSetName ,
114
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "A hash table which represents the parameters." ) ]
115
+ [ Parameter ( ParameterSetName = ParameterObjectTemplateUriParameterSetName ,
116
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "A hash table which represents the parameters." ) ]
117
+ [ Parameter ( ParameterSetName = ParameterObjectTemplateSpecParameterSetName ,
118
+ Mandatory = true , ValueFromPipelineByPropertyName = true , HelpMessage = "A hash table which represents the parameters." ) ]
119
+ public Hashtable TemplateParameterObject { get ; set ; }
102
120
103
121
[ Parameter ( Mandatory = false , ValueFromPipelineByPropertyName = true ,
104
122
HelpMessage = "Description for the stack" ) ]
@@ -108,10 +126,6 @@ public enum updateBehvaiorEnum { detachResources, purgeResources }
108
126
HelpMessage = "Update behavior for the stack. Value can be detachResources or failedResources." ) ]
109
127
public updateBehvaiorEnum UpdateBehavior { get ; set ; }
110
128
111
- [ Parameter ( Mandatory = false ,
112
- HelpMessage = "The scope at which the initial deployment should be created. If a scope isn't specified, it will default to the scope of the deployment stack." ) ]
113
- public string DeploymentScope { get ; set ; }
114
-
115
129
[ Parameter ( Mandatory = false ,
116
130
HelpMessage = "Do not ask for confirmation when overwriting an existing stack." ) ]
117
131
public SwitchParameter Force { get ; set ; }
@@ -128,11 +142,12 @@ public override void ExecuteCmdlet()
128
142
try
129
143
{
130
144
Hashtable parameters = new Hashtable ( ) ;
145
+ string filePath = "" ;
131
146
switch ( ParameterSetName )
132
147
{
133
148
case ParameterlessTemplateFileParameterSetName :
134
149
case ParameterUriTemplateFileParameterSetName :
135
- string filePath = this . TryResolvePath ( TemplateFile ) ;
150
+ filePath = this . TryResolvePath ( TemplateFile ) ;
136
151
if ( ! File . Exists ( filePath ) )
137
152
{
138
153
throw new PSInvalidOperationException (
@@ -142,17 +157,31 @@ public override void ExecuteCmdlet()
142
157
break ;
143
158
case ParameterFileTemplateSpecParameterSetName :
144
159
case ParameterFileTemplateUriParameterSetName :
145
- parameters = this . GetParameterObject ( ParameterFile ) ;
160
+ parameters = this . GetParameterObject ( TemplateParameterFile ) ;
146
161
break ;
147
162
case ParameterFileTemplateFileParameterSetName :
148
- string templatePath = this . TryResolvePath ( TemplateFile ) ;
149
- if ( ! File . Exists ( templatePath ) )
163
+ filePath = this . TryResolvePath ( TemplateFile ) ;
164
+ if ( ! File . Exists ( filePath ) )
150
165
{
151
166
throw new PSInvalidOperationException (
152
167
string . Format ( ProjectResources . InvalidFilePath , TemplateFile ) ) ;
153
168
}
154
- parameters = this . GetParameterObject ( ParameterFile ) ;
155
- TemplateUri = templatePath ;
169
+ parameters = this . GetParameterObject ( TemplateParameterFile ) ;
170
+ TemplateUri = filePath ;
171
+ break ;
172
+ case ParameterObjectTemplateFileParameterSetName :
173
+ filePath = this . TryResolvePath ( TemplateFile ) ;
174
+ if ( ! File . Exists ( filePath ) )
175
+ {
176
+ throw new PSInvalidOperationException (
177
+ string . Format ( ProjectResources . InvalidFilePath , TemplateFile ) ) ;
178
+ }
179
+ TemplateUri = filePath ;
180
+ parameters = GetTemplateParameterObject ( TemplateParameterObject ) ;
181
+ break ;
182
+ case ParameterObjectTemplateSpecParameterSetName :
183
+ case ParameterObjectTemplateUriParameterSetName :
184
+ parameters = GetTemplateParameterObject ( TemplateParameterObject ) ;
156
185
break ;
157
186
}
158
187
@@ -163,11 +192,10 @@ public override void ExecuteCmdlet()
163
192
ResourceGroupName ,
164
193
TemplateUri ,
165
194
TemplateSpecId ,
166
- ParameterUri ,
195
+ TemplateParameterUri ,
167
196
parameters ,
168
197
Description ,
169
- ( UpdateBehavior . ToString ( ) == "detachResources" ) ? "detach" : "purge" ,
170
- DeploymentScope
198
+ ( UpdateBehavior . ToString ( ) == "detachResources" ) ? "detach" : "purge"
171
199
) ;
172
200
WriteObject ( deploymentStack ) ;
173
201
} ;
0 commit comments