@@ -163,23 +163,101 @@ pub enum DataType {
163163}
164164
165165#[ derive( Debug , Clone , PartialEq , Deserialize , Serialize , JsonSchema ) ]
166+ pub enum CopyMode {
167+ #[ serde( rename = "serial" ) ]
168+ Serial ,
169+ #[ serde( rename = "parallel" ) ]
170+ Parallel ,
171+ }
172+
173+ #[ derive( Debug , Clone , PartialEq , Deserialize , Serialize , JsonSchema ) ]
174+ #[ serde( deny_unknown_fields) ]
175+ pub struct Copy {
176+ pub name : String ,
177+ pub count : i32 ,
178+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
179+ pub mode : Option < CopyMode > ,
180+ #[ serde( skip_serializing_if = "Option::is_none" , rename = "batchSize" ) ]
181+ pub batch_size : Option < i32 > ,
182+ }
183+
184+ #[ derive( Debug , Clone , PartialEq , Deserialize , Serialize , JsonSchema ) ]
185+ #[ serde( deny_unknown_fields) ]
186+ pub struct Plan {
187+ pub name : String ,
188+ #[ serde( skip_serializing_if = "Option::is_none" , rename = "promotionCode" ) ]
189+ pub promotion_code : Option < String > ,
190+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
191+ pub publisher : Option < String > ,
192+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
193+ pub product : Option < String > ,
194+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
195+ pub version : Option < String > ,
196+ }
197+
198+ #[ derive( Debug , Clone , PartialEq , Deserialize , Serialize , JsonSchema ) ]
199+ #[ serde( deny_unknown_fields) ]
200+ pub struct Identity {
201+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
202+ pub r#type : Option < String > ,
203+ #[ serde( skip_serializing_if = "Option::is_none" , rename = "userAssignedIdentities" ) ]
204+ pub user_assigned_identities : Option < Map < String , Value > > ,
205+ }
206+
207+ #[ derive( Debug , Clone , PartialEq , Deserialize , Serialize , JsonSchema ) ]
208+ #[ serde( deny_unknown_fields) ]
209+ pub struct Sku {
210+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
211+ pub name : Option < String > ,
212+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
213+ pub tier : Option < String > ,
214+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
215+ pub size : Option < String > ,
216+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
217+ pub family : Option < String > ,
218+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
219+ pub capacity : Option < i32 > ,
220+ }
221+
222+ #[ derive( Debug , Clone , PartialEq , Deserialize , Serialize , JsonSchema ) ]
223+ #[ serde( deny_unknown_fields) ]
166224pub struct Resource {
225+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
226+ pub condition : Option < String > ,
167227 /// The fully qualified name of the resource type
168228 #[ serde( rename = "type" ) ]
169229 pub resource_type : String ,
230+ #[ serde( skip_serializing_if = "Option::is_none" , rename = "apiVersion" ) ]
231+ pub api_version : Option < String > ,
170232 /// A friendly name for the resource instance
171233 pub name : String , // friendly unique instance name
234+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
235+ pub comments : Option < String > ,
236+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
237+ pub location : Option < String > ,
172238 #[ serde( rename = "dependsOn" , skip_serializing_if = "Option::is_none" ) ]
173239 #[ schemars( regex( pattern = r"^\[resourceId\(\s*'[a-zA-Z0-9\.]+/[a-zA-Z0-9]+'\s*,\s*'[a-zA-Z0-9 ]+'\s*\)]$" ) ) ]
174240 pub depends_on : Option < Vec < String > > ,
175241 #[ serde( skip_serializing_if = "Option::is_none" ) ]
242+ pub tags : Option < Map < String , Value > > ,
243+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
244+ pub identity : Option < Identity > ,
245+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
246+ pub sku : Option < Sku > ,
247+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
176248 pub kind : Option < String > ,
177249 #[ serde( skip_serializing_if = "Option::is_none" ) ]
250+ pub scope : Option < String > ,
251+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
252+ pub copy : Option < Copy > ,
253+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
254+ pub plan : Option < Plan > ,
255+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
178256 pub properties : Option < Map < String , Value > > ,
179257 #[ serde( skip_serializing_if = "Option::is_none" ) ]
180- pub metadata : Option < Metadata > ,
258+ pub resources : Option < Vec < Resource > > ,
181259 #[ serde( skip_serializing_if = "Option::is_none" ) ]
182- pub condition : Option < String > ,
260+ pub metadata : Option < Metadata > ,
183261}
184262
185263impl Default for Configuration {
@@ -237,6 +315,16 @@ impl Resource {
237315 properties : None ,
238316 metadata : None ,
239317 condition : None ,
318+ identity : None ,
319+ sku : None ,
320+ scope : None ,
321+ copy : None ,
322+ plan : None ,
323+ resources : None ,
324+ comments : None ,
325+ location : None ,
326+ tags : None ,
327+ api_version : None ,
240328 }
241329 }
242330}
0 commit comments