azure_mgmt_migrateprojects/package_2018_09/
models.rs

1#![allow(non_camel_case_types)]
2#![allow(unused_imports)]
3use serde::de::{value, Deserializer, IntoDeserializer};
4use serde::{Deserialize, Serialize, Serializer};
5use std::str::FromStr;
6#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
7pub struct ApplyClause {
8    #[serde(
9        default,
10        deserialize_with = "azure_core::util::deserialize_null_as_default",
11        skip_serializing_if = "Vec::is_empty"
12    )]
13    pub transformations: Vec<TransformationNode>,
14}
15impl ApplyClause {
16    pub fn new() -> Self {
17        Self::default()
18    }
19}
20#[doc = "Assessment properties that can be shared by various publishers."]
21#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
22pub struct AssessmentDetails {
23    #[doc = "Gets or sets the id of the assessment done on the machine."]
24    #[serde(rename = "assessmentId", default, skip_serializing_if = "Option::is_none")]
25    pub assessment_id: Option<String>,
26    #[doc = "Gets or sets the target VM size."]
27    #[serde(rename = "targetVMSize", default, skip_serializing_if = "Option::is_none")]
28    pub target_vm_size: Option<String>,
29    #[doc = "Gets or sets the target VM location."]
30    #[serde(rename = "targetVMLocation", default, skip_serializing_if = "Option::is_none")]
31    pub target_vm_location: Option<String>,
32    #[doc = "Gets or sets the target storage type."]
33    #[serde(rename = "targetStorageType", default, skip_serializing_if = "Option::is_none")]
34    pub target_storage_type: Option<serde_json::Value>,
35    #[doc = "Gets or sets the time the message was enqueued."]
36    #[serde(rename = "enqueueTime", default, skip_serializing_if = "Option::is_none")]
37    pub enqueue_time: Option<String>,
38    #[doc = "Gets or sets the name of the solution that sent the data."]
39    #[serde(rename = "solutionName", default, skip_serializing_if = "Option::is_none")]
40    pub solution_name: Option<String>,
41    #[doc = "Gets or sets the unique identifier of the machine."]
42    #[serde(rename = "machineId", default, skip_serializing_if = "Option::is_none")]
43    pub machine_id: Option<String>,
44    #[doc = "Gets or sets the unique identifier of the virtual machine manager(vCenter/VMM)."]
45    #[serde(rename = "machineManagerId", default, skip_serializing_if = "Option::is_none")]
46    pub machine_manager_id: Option<String>,
47    #[doc = "Gets or sets the fabric type."]
48    #[serde(rename = "fabricType", default, skip_serializing_if = "Option::is_none")]
49    pub fabric_type: Option<String>,
50    #[doc = "Gets or sets the time of the last modification of the machine details."]
51    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
52    pub last_updated_time: Option<::time::OffsetDateTime>,
53    #[doc = "Gets or sets the name of the machine."]
54    #[serde(rename = "machineName", default, skip_serializing_if = "Option::is_none")]
55    pub machine_name: Option<String>,
56    #[doc = "Gets or sets the list of IP addresses of the machine. IP addresses could be IP V4 or IP V6."]
57    #[serde(
58        rename = "ipAddresses",
59        default,
60        deserialize_with = "azure_core::util::deserialize_null_as_default",
61        skip_serializing_if = "Vec::is_empty"
62    )]
63    pub ip_addresses: Vec<String>,
64    #[doc = "Gets or sets the FQDN of the machine."]
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub fqdn: Option<String>,
67    #[doc = "Gets or sets the BIOS ID of the machine."]
68    #[serde(rename = "biosId", default, skip_serializing_if = "Option::is_none")]
69    pub bios_id: Option<String>,
70    #[doc = "Gets or sets the list of MAC addresses of the machine."]
71    #[serde(
72        rename = "macAddresses",
73        default,
74        deserialize_with = "azure_core::util::deserialize_null_as_default",
75        skip_serializing_if = "Vec::is_empty"
76    )]
77    pub mac_addresses: Vec<String>,
78    #[doc = "Gets or sets the ISV specific extended information."]
79    #[serde(rename = "extendedInfo", default, skip_serializing_if = "Option::is_none")]
80    pub extended_info: Option<serde_json::Value>,
81}
82impl AssessmentDetails {
83    pub fn new() -> Self {
84        Self::default()
85    }
86}
87#[doc = "Database REST resource."]
88#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
89pub struct Database {
90    #[doc = "Gets or sets the relative URL to get to this REST resource."]
91    #[serde(default, skip_serializing_if = "Option::is_none")]
92    pub id: Option<String>,
93    #[doc = "Gets or sets the name of this REST resource."]
94    #[serde(default, skip_serializing_if = "Option::is_none")]
95    pub name: Option<String>,
96    #[doc = "Gets the type of this REST resource."]
97    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
98    pub type_: Option<String>,
99    #[doc = "Properties of the database resource."]
100    #[serde(default, skip_serializing_if = "Option::is_none")]
101    pub properties: Option<DatabaseProperties>,
102}
103impl Database {
104    pub fn new() -> Self {
105        Self::default()
106    }
107}
108#[doc = "Assessment properties that can be shared by various publishers."]
109#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
110pub struct DatabaseAssessmentDetails {
111    #[doc = "Gets or sets the database assessment scope/Id."]
112    #[serde(rename = "assessmentId", default, skip_serializing_if = "Option::is_none")]
113    pub assessment_id: Option<String>,
114    #[doc = "Gets or sets the number of blocking changes found."]
115    #[serde(rename = "migrationBlockersCount", default, skip_serializing_if = "Option::is_none")]
116    pub migration_blockers_count: Option<i32>,
117    #[doc = "Gets or sets the number of breaking changes found."]
118    #[serde(rename = "breakingChangesCount", default, skip_serializing_if = "Option::is_none")]
119    pub breaking_changes_count: Option<i32>,
120    #[doc = "Gets or sets a value indicating whether the database is ready for migration."]
121    #[serde(rename = "isReadyForMigration", default, skip_serializing_if = "Option::is_none")]
122    pub is_ready_for_migration: Option<bool>,
123    #[doc = "Gets or sets the assessed target database type."]
124    #[serde(rename = "assessmentTargetType", default, skip_serializing_if = "Option::is_none")]
125    pub assessment_target_type: Option<String>,
126    #[doc = "Gets or sets the time when the database was last assessed."]
127    #[serde(rename = "lastAssessedTime", default, with = "azure_core::date::rfc3339::option")]
128    pub last_assessed_time: Option<::time::OffsetDateTime>,
129    #[doc = "Gets or sets the compatibility level of the database."]
130    #[serde(rename = "compatibilityLevel", default, skip_serializing_if = "Option::is_none")]
131    pub compatibility_level: Option<String>,
132    #[doc = "Gets or sets the database size."]
133    #[serde(rename = "databaseSizeInMB", default, skip_serializing_if = "Option::is_none")]
134    pub database_size_in_mb: Option<String>,
135    #[doc = "Gets or sets the time of the last modification of the database details."]
136    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
137    pub last_updated_time: Option<::time::OffsetDateTime>,
138    #[doc = "Gets or sets the time the message was enqueued."]
139    #[serde(rename = "enqueueTime", default, skip_serializing_if = "Option::is_none")]
140    pub enqueue_time: Option<String>,
141    #[doc = "Gets or sets the name of the solution that sent the data."]
142    #[serde(rename = "solutionName", default, skip_serializing_if = "Option::is_none")]
143    pub solution_name: Option<String>,
144    #[doc = "Gets or sets the database server instance Id."]
145    #[serde(rename = "instanceId", default, skip_serializing_if = "Option::is_none")]
146    pub instance_id: Option<String>,
147    #[doc = "Gets or sets the database name."]
148    #[serde(rename = "databaseName", default, skip_serializing_if = "Option::is_none")]
149    pub database_name: Option<String>,
150    #[doc = "Gets or sets the extended properties of the database."]
151    #[serde(rename = "extendedInfo", default, skip_serializing_if = "Option::is_none")]
152    pub extended_info: Option<serde_json::Value>,
153}
154impl DatabaseAssessmentDetails {
155    pub fn new() -> Self {
156        Self::default()
157    }
158}
159#[doc = "Collection of databases."]
160#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
161pub struct DatabaseCollection {
162    #[doc = "Gets or sets the databases."]
163    #[serde(
164        default,
165        deserialize_with = "azure_core::util::deserialize_null_as_default",
166        skip_serializing_if = "Vec::is_empty"
167    )]
168    pub value: Vec<Database>,
169    #[doc = "Gets or sets the value of nextLink."]
170    #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
171    pub next_link: Option<String>,
172}
173impl DatabaseCollection {
174    pub fn new() -> Self {
175        Self::default()
176    }
177}
178#[doc = "DatabaseInstance REST resource."]
179#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
180pub struct DatabaseInstance {
181    #[doc = "Gets or sets the relative URL to get to this REST resource."]
182    #[serde(default, skip_serializing_if = "Option::is_none")]
183    pub id: Option<String>,
184    #[doc = "Gets or sets the name of this REST resource."]
185    #[serde(default, skip_serializing_if = "Option::is_none")]
186    pub name: Option<String>,
187    #[doc = "Gets the type of this REST resource."]
188    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
189    pub type_: Option<String>,
190    #[doc = "Properties of the database instance resource."]
191    #[serde(default, skip_serializing_if = "Option::is_none")]
192    pub properties: Option<DatabaseInstanceProperties>,
193}
194impl DatabaseInstance {
195    pub fn new() -> Self {
196        Self::default()
197    }
198}
199#[doc = "Collection of database instances."]
200#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
201pub struct DatabaseInstanceCollection {
202    #[doc = "Gets or sets the database instances."]
203    #[serde(
204        default,
205        deserialize_with = "azure_core::util::deserialize_null_as_default",
206        skip_serializing_if = "Vec::is_empty"
207    )]
208    pub value: Vec<DatabaseInstance>,
209    #[doc = "Gets or sets the value of nextLink."]
210    #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
211    pub next_link: Option<String>,
212}
213impl DatabaseInstanceCollection {
214    pub fn new() -> Self {
215        Self::default()
216    }
217}
218#[doc = "Discovery properties that can be shared by various publishers."]
219#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
220pub struct DatabaseInstanceDiscoveryDetails {
221    #[doc = "Gets or sets the time of the last modification of the database instance details."]
222    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
223    pub last_updated_time: Option<::time::OffsetDateTime>,
224    #[doc = "Gets or sets the database instance Id."]
225    #[serde(rename = "instanceId", default, skip_serializing_if = "Option::is_none")]
226    pub instance_id: Option<String>,
227    #[doc = "Gets or sets the time the message was enqueued."]
228    #[serde(rename = "enqueueTime", default, skip_serializing_if = "Option::is_none")]
229    pub enqueue_time: Option<String>,
230    #[doc = "Gets or sets the name of the solution that sent the data."]
231    #[serde(rename = "solutionName", default, skip_serializing_if = "Option::is_none")]
232    pub solution_name: Option<String>,
233    #[doc = "Gets or sets the database instance name."]
234    #[serde(rename = "instanceName", default, skip_serializing_if = "Option::is_none")]
235    pub instance_name: Option<String>,
236    #[doc = "Gets or sets the database instance version."]
237    #[serde(rename = "instanceVersion", default, skip_serializing_if = "Option::is_none")]
238    pub instance_version: Option<String>,
239    #[doc = "Gets or sets the database instance type."]
240    #[serde(rename = "instanceType", default, skip_serializing_if = "Option::is_none")]
241    pub instance_type: Option<String>,
242    #[doc = "Gets or sets the host name of the database server."]
243    #[serde(rename = "hostName", default, skip_serializing_if = "Option::is_none")]
244    pub host_name: Option<String>,
245    #[doc = "Gets or sets the IP addresses of the database server. IP addresses could be IP V4 or IP V6."]
246    #[serde(rename = "ipAddress", default, skip_serializing_if = "Option::is_none")]
247    pub ip_address: Option<String>,
248    #[doc = "Gets or sets the port number of the database server."]
249    #[serde(rename = "portNumber", default, skip_serializing_if = "Option::is_none")]
250    pub port_number: Option<i32>,
251    #[doc = "Gets or sets the extended properties of the database server."]
252    #[serde(rename = "extendedInfo", default, skip_serializing_if = "Option::is_none")]
253    pub extended_info: Option<serde_json::Value>,
254}
255impl DatabaseInstanceDiscoveryDetails {
256    pub fn new() -> Self {
257        Self::default()
258    }
259}
260#[doc = "Properties of the database instance resource."]
261#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
262pub struct DatabaseInstanceProperties {
263    #[doc = "Gets or sets the assessment details of the database instance published by various sources."]
264    #[serde(
265        rename = "discoveryData",
266        default,
267        deserialize_with = "azure_core::util::deserialize_null_as_default",
268        skip_serializing_if = "Vec::is_empty"
269    )]
270    pub discovery_data: Vec<DatabaseInstanceDiscoveryDetails>,
271    #[doc = "Gets or sets the database instances summary per solution. The key of dictionary is the solution name and value is the corresponding database instance summary object."]
272    #[serde(default, skip_serializing_if = "Option::is_none")]
273    pub summary: Option<serde_json::Value>,
274    #[doc = "Gets or sets the time of the last modification of the database."]
275    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
276    pub last_updated_time: Option<::time::OffsetDateTime>,
277}
278impl DatabaseInstanceProperties {
279    pub fn new() -> Self {
280        Self::default()
281    }
282}
283#[doc = "Class representing the database instance summary object."]
284#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
285pub struct DatabaseInstanceSummary {
286    #[doc = "Gets or sets the count of databases assessed."]
287    #[serde(rename = "databasesAssessedCount", default, skip_serializing_if = "Option::is_none")]
288    pub databases_assessed_count: Option<i32>,
289    #[doc = "Gets or sets the count of databases ready for migration."]
290    #[serde(rename = "migrationReadyCount", default, skip_serializing_if = "Option::is_none")]
291    pub migration_ready_count: Option<i32>,
292}
293impl DatabaseInstanceSummary {
294    pub fn new() -> Self {
295        Self::default()
296    }
297}
298#[doc = "Properties of the database error resource."]
299#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
300pub struct DatabaseMigrateEventProperties {
301    #[serde(flatten)]
302    pub migrate_event_properties: MigrateEventProperties,
303    #[doc = "Gets or sets the database for which the error is being reported."]
304    #[serde(default, skip_serializing_if = "Option::is_none")]
305    pub database: Option<String>,
306    #[doc = "Gets or sets the database instance for which the error is being reported."]
307    #[serde(rename = "databaseInstanceId", default, skip_serializing_if = "Option::is_none")]
308    pub database_instance_id: Option<String>,
309}
310impl DatabaseMigrateEventProperties {
311    pub fn new() -> Self {
312        Self::default()
313    }
314}
315#[doc = "The database project summary class."]
316#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
317pub struct DatabaseProjectSummary {
318    #[serde(flatten)]
319    pub project_summary: ProjectSummary,
320}
321impl DatabaseProjectSummary {
322    pub fn new() -> Self {
323        Self::default()
324    }
325}
326#[doc = "Properties of the database resource."]
327#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
328pub struct DatabaseProperties {
329    #[doc = "Gets or sets the assessment details of the database published by various sources."]
330    #[serde(
331        rename = "assessmentData",
332        default,
333        deserialize_with = "azure_core::util::deserialize_null_as_default",
334        skip_serializing_if = "Vec::is_empty"
335    )]
336    pub assessment_data: Vec<DatabaseAssessmentDetails>,
337    #[doc = "Gets or sets the time of the last modification of the database."]
338    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
339    pub last_updated_time: Option<::time::OffsetDateTime>,
340}
341impl DatabaseProperties {
342    pub fn new() -> Self {
343        Self::default()
344    }
345}
346#[doc = "Class representing the databases solution summary."]
347#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
348pub struct DatabasesSolutionSummary {
349    #[doc = "Gets or sets the count of databases assessed."]
350    #[serde(rename = "databasesAssessedCount", default, skip_serializing_if = "Option::is_none")]
351    pub databases_assessed_count: Option<i32>,
352    #[doc = "Gets or sets the count of database instances assessed."]
353    #[serde(rename = "databaseInstancesAssessedCount", default, skip_serializing_if = "Option::is_none")]
354    pub database_instances_assessed_count: Option<i32>,
355    #[doc = "Gets or sets the count of databases ready for migration."]
356    #[serde(rename = "migrationReadyCount", default, skip_serializing_if = "Option::is_none")]
357    pub migration_ready_count: Option<i32>,
358}
359impl DatabasesSolutionSummary {
360    pub fn new() -> Self {
361        Self::default()
362    }
363}
364#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
365pub struct DefaultQuerySettings {
366    #[serde(rename = "enableExpand", default, skip_serializing_if = "Option::is_none")]
367    pub enable_expand: Option<bool>,
368    #[serde(rename = "enableSelect", default, skip_serializing_if = "Option::is_none")]
369    pub enable_select: Option<bool>,
370    #[serde(rename = "enableCount", default, skip_serializing_if = "Option::is_none")]
371    pub enable_count: Option<bool>,
372    #[serde(rename = "enableOrderBy", default, skip_serializing_if = "Option::is_none")]
373    pub enable_order_by: Option<bool>,
374    #[serde(rename = "enableFilter", default, skip_serializing_if = "Option::is_none")]
375    pub enable_filter: Option<bool>,
376    #[serde(rename = "maxTop", default, skip_serializing_if = "Option::is_none")]
377    pub max_top: Option<i32>,
378}
379impl DefaultQuerySettings {
380    pub fn new() -> Self {
381        Self::default()
382    }
383}
384#[doc = "Discovery properties that can be published by various ISVs."]
385#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
386pub struct DiscoveryDetails {
387    #[doc = "Gets or sets the OS type."]
388    #[serde(rename = "osType", default, skip_serializing_if = "Option::is_none")]
389    pub os_type: Option<String>,
390    #[doc = "Gets or sets the OS name."]
391    #[serde(rename = "osName", default, skip_serializing_if = "Option::is_none")]
392    pub os_name: Option<String>,
393    #[doc = "Gets or sets the OS version."]
394    #[serde(rename = "osVersion", default, skip_serializing_if = "Option::is_none")]
395    pub os_version: Option<String>,
396    #[doc = "Gets or sets the time the message was enqueued."]
397    #[serde(rename = "enqueueTime", default, skip_serializing_if = "Option::is_none")]
398    pub enqueue_time: Option<String>,
399    #[doc = "Gets or sets the name of the solution that sent the data."]
400    #[serde(rename = "solutionName", default, skip_serializing_if = "Option::is_none")]
401    pub solution_name: Option<String>,
402    #[doc = "Gets or sets the unique identifier of the machine."]
403    #[serde(rename = "machineId", default, skip_serializing_if = "Option::is_none")]
404    pub machine_id: Option<String>,
405    #[doc = "Gets or sets the unique identifier of the virtual machine manager(vCenter/VMM)."]
406    #[serde(rename = "machineManagerId", default, skip_serializing_if = "Option::is_none")]
407    pub machine_manager_id: Option<String>,
408    #[doc = "Gets or sets the fabric type."]
409    #[serde(rename = "fabricType", default, skip_serializing_if = "Option::is_none")]
410    pub fabric_type: Option<String>,
411    #[doc = "Gets or sets the time of the last modification of the machine details."]
412    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
413    pub last_updated_time: Option<::time::OffsetDateTime>,
414    #[doc = "Gets or sets the name of the machine."]
415    #[serde(rename = "machineName", default, skip_serializing_if = "Option::is_none")]
416    pub machine_name: Option<String>,
417    #[doc = "Gets or sets the list of IP addresses of the machine. IP addresses could be IP V4 or IP V6."]
418    #[serde(
419        rename = "ipAddresses",
420        default,
421        deserialize_with = "azure_core::util::deserialize_null_as_default",
422        skip_serializing_if = "Vec::is_empty"
423    )]
424    pub ip_addresses: Vec<String>,
425    #[doc = "Gets or sets the FQDN of the machine."]
426    #[serde(default, skip_serializing_if = "Option::is_none")]
427    pub fqdn: Option<String>,
428    #[doc = "Gets or sets the BIOS ID of the machine."]
429    #[serde(rename = "biosId", default, skip_serializing_if = "Option::is_none")]
430    pub bios_id: Option<String>,
431    #[doc = "Gets or sets the list of MAC addresses of the machine."]
432    #[serde(
433        rename = "macAddresses",
434        default,
435        deserialize_with = "azure_core::util::deserialize_null_as_default",
436        skip_serializing_if = "Vec::is_empty"
437    )]
438    pub mac_addresses: Vec<String>,
439    #[doc = "Gets or sets the ISV specific extended information."]
440    #[serde(rename = "extendedInfo", default, skip_serializing_if = "Option::is_none")]
441    pub extended_info: Option<serde_json::Value>,
442}
443impl DiscoveryDetails {
444    pub fn new() -> Self {
445        Self::default()
446    }
447}
448#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
449pub struct EdmReferentialConstraintPropertyPair {
450    #[serde(rename = "dependentProperty", default, skip_serializing_if = "Option::is_none")]
451    pub dependent_property: Option<IEdmStructuralProperty>,
452    #[serde(rename = "principalProperty", default, skip_serializing_if = "Option::is_none")]
453    pub principal_property: Option<IEdmStructuralProperty>,
454}
455impl EdmReferentialConstraintPropertyPair {
456    pub fn new() -> Self {
457        Self::default()
458    }
459}
460#[doc = "Collection of events."]
461#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
462pub struct EventCollection {
463    #[doc = "Gets or sets the machines."]
464    #[serde(
465        default,
466        deserialize_with = "azure_core::util::deserialize_null_as_default",
467        skip_serializing_if = "Vec::is_empty"
468    )]
469    pub value: Vec<MigrateEvent>,
470    #[doc = "Gets or sets the value of nextLink."]
471    #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
472    pub next_link: Option<String>,
473}
474impl EventCollection {
475    pub fn new() -> Self {
476        Self::default()
477    }
478}
479#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
480pub struct FilterClause {
481    #[serde(default, skip_serializing_if = "Option::is_none")]
482    pub expression: Option<SingleValueNode>,
483    #[serde(rename = "rangeVariable", default, skip_serializing_if = "Option::is_none")]
484    pub range_variable: Option<RangeVariable>,
485    #[serde(rename = "itemType", default, skip_serializing_if = "Option::is_none")]
486    pub item_type: Option<IEdmTypeReference>,
487}
488impl FilterClause {
489    pub fn new() -> Self {
490        Self::default()
491    }
492}
493#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
494pub struct FilterQueryOption {
495    #[serde(default, skip_serializing_if = "Option::is_none")]
496    pub context: Option<ODataQueryContext>,
497    #[serde(default, skip_serializing_if = "Option::is_none")]
498    pub validator: Option<FilterQueryValidator>,
499    #[serde(rename = "filterClause", default, skip_serializing_if = "Option::is_none")]
500    pub filter_clause: Option<FilterClause>,
501    #[serde(rename = "rawValue", default, skip_serializing_if = "Option::is_none")]
502    pub raw_value: Option<String>,
503}
504impl FilterQueryOption {
505    pub fn new() -> Self {
506        Self::default()
507    }
508}
509#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
510pub struct FilterQueryValidator {}
511impl FilterQueryValidator {
512    pub fn new() -> Self {
513        Self::default()
514    }
515}
516#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
517pub struct IEdmDirectValueAnnotationsManager {}
518impl IEdmDirectValueAnnotationsManager {
519    pub fn new() -> Self {
520        Self::default()
521    }
522}
523#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
524pub struct IEdmEntityContainer {
525    #[serde(
526        default,
527        deserialize_with = "azure_core::util::deserialize_null_as_default",
528        skip_serializing_if = "Vec::is_empty"
529    )]
530    pub elements: Vec<IEdmEntityContainerElement>,
531    #[serde(rename = "schemaElementKind", default, skip_serializing_if = "Option::is_none")]
532    pub schema_element_kind: Option<i_edm_entity_container::SchemaElementKind>,
533    #[serde(default, skip_serializing_if = "Option::is_none")]
534    pub namespace: Option<String>,
535    #[serde(default, skip_serializing_if = "Option::is_none")]
536    pub name: Option<String>,
537}
538impl IEdmEntityContainer {
539    pub fn new() -> Self {
540        Self::default()
541    }
542}
543pub mod i_edm_entity_container {
544    use super::*;
545    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
546    pub enum SchemaElementKind {
547        None,
548        TypeDefinition,
549        Term,
550        Action,
551        EntityContainer,
552        Function,
553    }
554}
555#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
556pub struct IEdmEntityContainerElement {
557    #[serde(rename = "containerElementKind", default, skip_serializing_if = "Option::is_none")]
558    pub container_element_kind: Option<i_edm_entity_container_element::ContainerElementKind>,
559    #[serde(default, skip_serializing_if = "Option::is_none")]
560    pub container: Option<IEdmEntityContainer>,
561    #[serde(default, skip_serializing_if = "Option::is_none")]
562    pub name: Option<String>,
563}
564impl IEdmEntityContainerElement {
565    pub fn new() -> Self {
566        Self::default()
567    }
568}
569pub mod i_edm_entity_container_element {
570    use super::*;
571    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
572    pub enum ContainerElementKind {
573        None,
574        EntitySet,
575        ActionImport,
576        FunctionImport,
577        Singleton,
578    }
579}
580#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
581pub struct IEdmExpression {
582    #[serde(rename = "expressionKind", default, skip_serializing_if = "Option::is_none")]
583    pub expression_kind: Option<i_edm_expression::ExpressionKind>,
584}
585impl IEdmExpression {
586    pub fn new() -> Self {
587        Self::default()
588    }
589}
590pub mod i_edm_expression {
591    use super::*;
592    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
593    pub enum ExpressionKind {
594        None,
595        BinaryConstant,
596        BooleanConstant,
597        DateTimeOffsetConstant,
598        DecimalConstant,
599        FloatingConstant,
600        GuidConstant,
601        IntegerConstant,
602        StringConstant,
603        DurationConstant,
604        Null,
605        Record,
606        Collection,
607        Path,
608        If,
609        Cast,
610        IsType,
611        FunctionApplication,
612        LabeledExpressionReference,
613        Labeled,
614        PropertyPath,
615        NavigationPropertyPath,
616        DateConstant,
617        TimeOfDayConstant,
618        EnumMember,
619        AnnotationPath,
620    }
621}
622#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
623pub struct IEdmModel {
624    #[serde(
625        rename = "schemaElements",
626        default,
627        deserialize_with = "azure_core::util::deserialize_null_as_default",
628        skip_serializing_if = "Vec::is_empty"
629    )]
630    pub schema_elements: Vec<IEdmSchemaElement>,
631    #[serde(
632        rename = "vocabularyAnnotations",
633        default,
634        deserialize_with = "azure_core::util::deserialize_null_as_default",
635        skip_serializing_if = "Vec::is_empty"
636    )]
637    pub vocabulary_annotations: Vec<IEdmVocabularyAnnotation>,
638    #[serde(
639        rename = "referencedModels",
640        default,
641        deserialize_with = "azure_core::util::deserialize_null_as_default",
642        skip_serializing_if = "Vec::is_empty"
643    )]
644    pub referenced_models: Vec<IEdmModel>,
645    #[serde(
646        rename = "declaredNamespaces",
647        default,
648        deserialize_with = "azure_core::util::deserialize_null_as_default",
649        skip_serializing_if = "Vec::is_empty"
650    )]
651    pub declared_namespaces: Vec<String>,
652    #[serde(rename = "directValueAnnotationsManager", default, skip_serializing_if = "Option::is_none")]
653    pub direct_value_annotations_manager: Option<IEdmDirectValueAnnotationsManager>,
654    #[serde(rename = "entityContainer", default, skip_serializing_if = "Option::is_none")]
655    pub entity_container: Option<IEdmEntityContainer>,
656}
657impl IEdmModel {
658    pub fn new() -> Self {
659        Self::default()
660    }
661}
662#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
663pub struct IEdmNavigationProperty {
664    #[serde(default, skip_serializing_if = "Option::is_none")]
665    pub partner: Option<Box<IEdmNavigationProperty>>,
666    #[serde(rename = "onDelete", default, skip_serializing_if = "Option::is_none")]
667    pub on_delete: Option<i_edm_navigation_property::OnDelete>,
668    #[serde(rename = "containsTarget", default, skip_serializing_if = "Option::is_none")]
669    pub contains_target: Option<bool>,
670    #[serde(rename = "referentialConstraint", default, skip_serializing_if = "Option::is_none")]
671    pub referential_constraint: Option<IEdmReferentialConstraint>,
672    #[serde(rename = "propertyKind", default, skip_serializing_if = "Option::is_none")]
673    pub property_kind: Option<i_edm_navigation_property::PropertyKind>,
674    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
675    pub type_: Option<IEdmTypeReference>,
676    #[serde(rename = "declaringType", default, skip_serializing_if = "Option::is_none")]
677    pub declaring_type: Option<IEdmStructuredType>,
678    #[serde(default, skip_serializing_if = "Option::is_none")]
679    pub name: Option<String>,
680}
681impl IEdmNavigationProperty {
682    pub fn new() -> Self {
683        Self::default()
684    }
685}
686pub mod i_edm_navigation_property {
687    use super::*;
688    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
689    pub enum OnDelete {
690        None,
691        Cascade,
692    }
693    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
694    pub enum PropertyKind {
695        None,
696        Structural,
697        Navigation,
698    }
699}
700#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
701pub struct IEdmNavigationPropertyBinding {
702    #[serde(rename = "navigationProperty", default, skip_serializing_if = "Option::is_none")]
703    pub navigation_property: Option<IEdmNavigationProperty>,
704    #[serde(default, skip_serializing_if = "Option::is_none")]
705    pub target: Option<IEdmNavigationSource>,
706    #[serde(default, skip_serializing_if = "Option::is_none")]
707    pub path: Option<IEdmPathExpression>,
708}
709impl IEdmNavigationPropertyBinding {
710    pub fn new() -> Self {
711        Self::default()
712    }
713}
714#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
715pub struct IEdmNavigationSource {
716    #[serde(
717        rename = "navigationPropertyBindings",
718        default,
719        deserialize_with = "azure_core::util::deserialize_null_as_default",
720        skip_serializing_if = "Vec::is_empty"
721    )]
722    pub navigation_property_bindings: Vec<IEdmNavigationPropertyBinding>,
723    #[serde(default, skip_serializing_if = "Option::is_none")]
724    pub path: Option<IEdmPathExpression>,
725    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
726    pub type_: Option<IEdmType>,
727    #[serde(default, skip_serializing_if = "Option::is_none")]
728    pub name: Option<String>,
729}
730impl IEdmNavigationSource {
731    pub fn new() -> Self {
732        Self::default()
733    }
734}
735#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
736pub struct IEdmPathExpression {
737    #[serde(
738        rename = "pathSegments",
739        default,
740        deserialize_with = "azure_core::util::deserialize_null_as_default",
741        skip_serializing_if = "Vec::is_empty"
742    )]
743    pub path_segments: Vec<String>,
744    #[serde(default, skip_serializing_if = "Option::is_none")]
745    pub path: Option<String>,
746    #[serde(rename = "expressionKind", default, skip_serializing_if = "Option::is_none")]
747    pub expression_kind: Option<i_edm_path_expression::ExpressionKind>,
748}
749impl IEdmPathExpression {
750    pub fn new() -> Self {
751        Self::default()
752    }
753}
754pub mod i_edm_path_expression {
755    use super::*;
756    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
757    pub enum ExpressionKind {
758        None,
759        BinaryConstant,
760        BooleanConstant,
761        DateTimeOffsetConstant,
762        DecimalConstant,
763        FloatingConstant,
764        GuidConstant,
765        IntegerConstant,
766        StringConstant,
767        DurationConstant,
768        Null,
769        Record,
770        Collection,
771        Path,
772        If,
773        Cast,
774        IsType,
775        FunctionApplication,
776        LabeledExpressionReference,
777        Labeled,
778        PropertyPath,
779        NavigationPropertyPath,
780        DateConstant,
781        TimeOfDayConstant,
782        EnumMember,
783        AnnotationPath,
784    }
785}
786#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
787pub struct IEdmProperty {
788    #[serde(rename = "propertyKind", default, skip_serializing_if = "Option::is_none")]
789    pub property_kind: Option<i_edm_property::PropertyKind>,
790    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
791    pub type_: Option<IEdmTypeReference>,
792    #[serde(rename = "declaringType", default, skip_serializing_if = "Option::is_none")]
793    pub declaring_type: Option<IEdmStructuredType>,
794    #[serde(default, skip_serializing_if = "Option::is_none")]
795    pub name: Option<String>,
796}
797impl IEdmProperty {
798    pub fn new() -> Self {
799        Self::default()
800    }
801}
802pub mod i_edm_property {
803    use super::*;
804    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
805    pub enum PropertyKind {
806        None,
807        Structural,
808        Navigation,
809    }
810}
811#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
812pub struct IEdmReferentialConstraint {
813    #[serde(
814        rename = "propertyPairs",
815        default,
816        deserialize_with = "azure_core::util::deserialize_null_as_default",
817        skip_serializing_if = "Vec::is_empty"
818    )]
819    pub property_pairs: Vec<EdmReferentialConstraintPropertyPair>,
820}
821impl IEdmReferentialConstraint {
822    pub fn new() -> Self {
823        Self::default()
824    }
825}
826#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
827pub struct IEdmSchemaElement {
828    #[serde(rename = "schemaElementKind", default, skip_serializing_if = "Option::is_none")]
829    pub schema_element_kind: Option<i_edm_schema_element::SchemaElementKind>,
830    #[serde(default, skip_serializing_if = "Option::is_none")]
831    pub namespace: Option<String>,
832    #[serde(default, skip_serializing_if = "Option::is_none")]
833    pub name: Option<String>,
834}
835impl IEdmSchemaElement {
836    pub fn new() -> Self {
837        Self::default()
838    }
839}
840pub mod i_edm_schema_element {
841    use super::*;
842    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
843    pub enum SchemaElementKind {
844        None,
845        TypeDefinition,
846        Term,
847        Action,
848        EntityContainer,
849        Function,
850    }
851}
852#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
853pub struct IEdmStructuralProperty {
854    #[serde(rename = "defaultValueString", default, skip_serializing_if = "Option::is_none")]
855    pub default_value_string: Option<String>,
856    #[serde(rename = "propertyKind", default, skip_serializing_if = "Option::is_none")]
857    pub property_kind: Option<i_edm_structural_property::PropertyKind>,
858    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
859    pub type_: Option<IEdmTypeReference>,
860    #[serde(rename = "declaringType", default, skip_serializing_if = "Option::is_none")]
861    pub declaring_type: Option<IEdmStructuredType>,
862    #[serde(default, skip_serializing_if = "Option::is_none")]
863    pub name: Option<String>,
864}
865impl IEdmStructuralProperty {
866    pub fn new() -> Self {
867        Self::default()
868    }
869}
870pub mod i_edm_structural_property {
871    use super::*;
872    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
873    pub enum PropertyKind {
874        None,
875        Structural,
876        Navigation,
877    }
878}
879#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
880pub struct IEdmStructuredType {
881    #[serde(rename = "isAbstract", default, skip_serializing_if = "Option::is_none")]
882    pub is_abstract: Option<bool>,
883    #[serde(rename = "isOpen", default, skip_serializing_if = "Option::is_none")]
884    pub is_open: Option<bool>,
885    #[serde(rename = "baseType", default, skip_serializing_if = "Option::is_none")]
886    pub base_type: Option<Box<IEdmStructuredType>>,
887    #[serde(
888        rename = "declaredProperties",
889        default,
890        deserialize_with = "azure_core::util::deserialize_null_as_default",
891        skip_serializing_if = "Vec::is_empty"
892    )]
893    pub declared_properties: Vec<IEdmProperty>,
894    #[serde(rename = "typeKind", default, skip_serializing_if = "Option::is_none")]
895    pub type_kind: Option<i_edm_structured_type::TypeKind>,
896}
897impl IEdmStructuredType {
898    pub fn new() -> Self {
899        Self::default()
900    }
901}
902pub mod i_edm_structured_type {
903    use super::*;
904    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
905    pub enum TypeKind {
906        None,
907        Primitive,
908        Entity,
909        Complex,
910        Collection,
911        EntityReference,
912        Enum,
913        TypeDefinition,
914        Untyped,
915        Path,
916    }
917}
918#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
919pub struct IEdmTerm {
920    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
921    pub type_: Option<IEdmTypeReference>,
922    #[serde(rename = "appliesTo", default, skip_serializing_if = "Option::is_none")]
923    pub applies_to: Option<String>,
924    #[serde(rename = "defaultValue", default, skip_serializing_if = "Option::is_none")]
925    pub default_value: Option<String>,
926    #[serde(rename = "schemaElementKind", default, skip_serializing_if = "Option::is_none")]
927    pub schema_element_kind: Option<i_edm_term::SchemaElementKind>,
928    #[serde(default, skip_serializing_if = "Option::is_none")]
929    pub namespace: Option<String>,
930    #[serde(default, skip_serializing_if = "Option::is_none")]
931    pub name: Option<String>,
932}
933impl IEdmTerm {
934    pub fn new() -> Self {
935        Self::default()
936    }
937}
938pub mod i_edm_term {
939    use super::*;
940    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
941    pub enum SchemaElementKind {
942        None,
943        TypeDefinition,
944        Term,
945        Action,
946        EntityContainer,
947        Function,
948    }
949}
950#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
951pub struct IEdmType {
952    #[serde(rename = "typeKind", default, skip_serializing_if = "Option::is_none")]
953    pub type_kind: Option<i_edm_type::TypeKind>,
954}
955impl IEdmType {
956    pub fn new() -> Self {
957        Self::default()
958    }
959}
960pub mod i_edm_type {
961    use super::*;
962    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
963    pub enum TypeKind {
964        None,
965        Primitive,
966        Entity,
967        Complex,
968        Collection,
969        EntityReference,
970        Enum,
971        TypeDefinition,
972        Untyped,
973        Path,
974    }
975}
976#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
977pub struct IEdmTypeReference {
978    #[serde(rename = "isNullable", default, skip_serializing_if = "Option::is_none")]
979    pub is_nullable: Option<bool>,
980    #[serde(default, skip_serializing_if = "Option::is_none")]
981    pub definition: Option<IEdmType>,
982}
983impl IEdmTypeReference {
984    pub fn new() -> Self {
985        Self::default()
986    }
987}
988#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
989pub struct IEdmVocabularyAnnotatable {}
990impl IEdmVocabularyAnnotatable {
991    pub fn new() -> Self {
992        Self::default()
993    }
994}
995#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
996pub struct IEdmVocabularyAnnotation {
997    #[serde(default, skip_serializing_if = "Option::is_none")]
998    pub qualifier: Option<String>,
999    #[serde(default, skip_serializing_if = "Option::is_none")]
1000    pub term: Option<IEdmTerm>,
1001    #[serde(default, skip_serializing_if = "Option::is_none")]
1002    pub target: Option<IEdmVocabularyAnnotatable>,
1003    #[serde(default, skip_serializing_if = "Option::is_none")]
1004    pub value: Option<IEdmExpression>,
1005}
1006impl IEdmVocabularyAnnotation {
1007    pub fn new() -> Self {
1008        Self::default()
1009    }
1010}
1011#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1012pub struct IServiceProvider {}
1013impl IServiceProvider {
1014    pub fn new() -> Self {
1015        Self::default()
1016    }
1017}
1018#[doc = "Machine REST resource."]
1019#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1020pub struct Machine {
1021    #[doc = "Gets or sets the relative URL to get to this REST resource."]
1022    #[serde(default, skip_serializing_if = "Option::is_none")]
1023    pub id: Option<String>,
1024    #[doc = "Gets or sets the name of this REST resource."]
1025    #[serde(default, skip_serializing_if = "Option::is_none")]
1026    pub name: Option<String>,
1027    #[doc = "Gets the type of this REST resource."]
1028    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1029    pub type_: Option<String>,
1030    #[doc = "Properties of the machine resource."]
1031    #[serde(default, skip_serializing_if = "Option::is_none")]
1032    pub properties: Option<MachineProperties>,
1033}
1034impl Machine {
1035    pub fn new() -> Self {
1036        Self::default()
1037    }
1038}
1039#[doc = "Collection of machines."]
1040#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1041pub struct MachineCollection {
1042    #[doc = "Gets or sets the machines."]
1043    #[serde(
1044        default,
1045        deserialize_with = "azure_core::util::deserialize_null_as_default",
1046        skip_serializing_if = "Vec::is_empty"
1047    )]
1048    pub value: Vec<Machine>,
1049    #[doc = "Gets or sets the value of nextLink."]
1050    #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1051    pub next_link: Option<String>,
1052}
1053impl MachineCollection {
1054    pub fn new() -> Self {
1055        Self::default()
1056    }
1057}
1058#[doc = "Properties of the machine error resource."]
1059#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1060pub struct MachineMigrateEventProperties {
1061    #[serde(flatten)]
1062    pub migrate_event_properties: MigrateEventProperties,
1063    #[doc = "Gets or sets the machine for which the error is being reported."]
1064    #[serde(default, skip_serializing_if = "Option::is_none")]
1065    pub machine: Option<String>,
1066}
1067impl MachineMigrateEventProperties {
1068    pub fn new() -> Self {
1069        Self::default()
1070    }
1071}
1072#[doc = "Properties of the machine resource."]
1073#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1074pub struct MachineProperties {
1075    #[doc = "Gets or sets the discovery details of the machine published by various sources."]
1076    #[serde(
1077        rename = "discoveryData",
1078        default,
1079        deserialize_with = "azure_core::util::deserialize_null_as_default",
1080        skip_serializing_if = "Vec::is_empty"
1081    )]
1082    pub discovery_data: Vec<DiscoveryDetails>,
1083    #[doc = "Gets or sets the assessment details of the machine published by various sources."]
1084    #[serde(
1085        rename = "assessmentData",
1086        default,
1087        deserialize_with = "azure_core::util::deserialize_null_as_default",
1088        skip_serializing_if = "Vec::is_empty"
1089    )]
1090    pub assessment_data: Vec<AssessmentDetails>,
1091    #[doc = "Gets or sets the migration details of the machine published by various sources."]
1092    #[serde(
1093        rename = "migrationData",
1094        default,
1095        deserialize_with = "azure_core::util::deserialize_null_as_default",
1096        skip_serializing_if = "Vec::is_empty"
1097    )]
1098    pub migration_data: Vec<MigrationDetails>,
1099    #[doc = "Gets or sets the time of the last modification of the machine."]
1100    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
1101    pub last_updated_time: Option<::time::OffsetDateTime>,
1102}
1103impl MachineProperties {
1104    pub fn new() -> Self {
1105        Self::default()
1106    }
1107}
1108#[doc = "MigrateEvent REST resource."]
1109#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1110pub struct MigrateEvent {
1111    #[doc = "Gets or sets the relative URL to get to this REST resource."]
1112    #[serde(default, skip_serializing_if = "Option::is_none")]
1113    pub id: Option<String>,
1114    #[doc = "Gets or sets the name of this REST resource."]
1115    #[serde(default, skip_serializing_if = "Option::is_none")]
1116    pub name: Option<String>,
1117    #[doc = "Gets the type of this REST resource."]
1118    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1119    pub type_: Option<String>,
1120    #[doc = "Properties of the error resource."]
1121    #[serde(default, skip_serializing_if = "Option::is_none")]
1122    pub properties: Option<MigrateEventPropertiesUnion>,
1123}
1124impl MigrateEvent {
1125    pub fn new() -> Self {
1126        Self::default()
1127    }
1128}
1129#[doc = "Properties of the error resource."]
1130#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1131pub struct MigrateEventProperties {
1132    #[doc = "Gets or sets the error code."]
1133    #[serde(rename = "errorCode", default, skip_serializing_if = "Option::is_none")]
1134    pub error_code: Option<String>,
1135    #[doc = "Gets or sets the error message."]
1136    #[serde(rename = "errorMessage", default, skip_serializing_if = "Option::is_none")]
1137    pub error_message: Option<String>,
1138    #[doc = "Gets or sets the recommendation for the error."]
1139    #[serde(default, skip_serializing_if = "Option::is_none")]
1140    pub recommendation: Option<String>,
1141    #[doc = "Gets or sets the possible causes for the error."]
1142    #[serde(rename = "possibleCauses", default, skip_serializing_if = "Option::is_none")]
1143    pub possible_causes: Option<String>,
1144    #[doc = "Gets or sets the solution for which the error is being reported."]
1145    #[serde(default, skip_serializing_if = "Option::is_none")]
1146    pub solution: Option<String>,
1147    #[doc = "Gets or sets the client request Id of the payload for which the event is being reported."]
1148    #[serde(rename = "clientRequestId", default, skip_serializing_if = "Option::is_none")]
1149    pub client_request_id: Option<String>,
1150}
1151impl MigrateEventProperties {
1152    pub fn new() -> Self {
1153        Self::default()
1154    }
1155}
1156#[doc = "Gets the Instance type."]
1157#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1158#[serde(tag = "instanceType")]
1159pub enum MigrateEventPropertiesUnion {
1160    Databases(DatabaseMigrateEventProperties),
1161    Servers(MachineMigrateEventProperties),
1162}
1163#[doc = "Migrate Project REST Resource."]
1164#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1165pub struct MigrateProject {
1166    #[doc = "Gets or sets the eTag for concurrency control."]
1167    #[serde(rename = "eTag", default, skip_serializing_if = "Option::is_none")]
1168    pub e_tag: Option<String>,
1169    #[doc = "Gets or sets the Azure location in which migrate project is created."]
1170    #[serde(default, skip_serializing_if = "Option::is_none")]
1171    pub location: Option<String>,
1172    #[doc = "Class for migrate project properties."]
1173    #[serde(default, skip_serializing_if = "Option::is_none")]
1174    pub properties: Option<MigrateProjectProperties>,
1175    #[doc = "Gets the relative URL to get this migrate project."]
1176    #[serde(default, skip_serializing_if = "Option::is_none")]
1177    pub id: Option<String>,
1178    #[doc = "Gets the name of the migrate project."]
1179    #[serde(default, skip_serializing_if = "Option::is_none")]
1180    pub name: Option<String>,
1181    #[doc = "Handled by resource provider. Type = Microsoft.Migrate/MigrateProject."]
1182    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1183    pub type_: Option<String>,
1184    #[doc = "Gets or sets the tags."]
1185    #[serde(default, skip_serializing_if = "Option::is_none")]
1186    pub tags: Option<migrate_project::Tags>,
1187}
1188impl MigrateProject {
1189    pub fn new() -> Self {
1190        Self::default()
1191    }
1192}
1193pub mod migrate_project {
1194    use super::*;
1195    #[doc = "Gets or sets the tags."]
1196    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1197    pub struct Tags {
1198        #[serde(rename = "additionalProperties", default, skip_serializing_if = "Option::is_none")]
1199        pub additional_properties: Option<String>,
1200    }
1201    impl Tags {
1202        pub fn new() -> Self {
1203            Self::default()
1204        }
1205    }
1206}
1207#[doc = "Class for migrate project properties."]
1208#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1209pub struct MigrateProjectProperties {
1210    #[doc = "Gets or sets the list of tools registered with the migrate project."]
1211    #[serde(
1212        rename = "registeredTools",
1213        default,
1214        deserialize_with = "azure_core::util::deserialize_null_as_default",
1215        skip_serializing_if = "Vec::is_empty"
1216    )]
1217    pub registered_tools: Vec<String>,
1218    #[doc = "Gets the summary of the migrate project."]
1219    #[serde(default, skip_serializing_if = "Option::is_none")]
1220    pub summary: Option<serde_json::Value>,
1221    #[doc = "Gets the last time the project summary was refreshed."]
1222    #[serde(rename = "lastSummaryRefreshedTime", default, with = "azure_core::date::rfc3339::option")]
1223    pub last_summary_refreshed_time: Option<::time::OffsetDateTime>,
1224    #[doc = "Gets the refresh summary state."]
1225    #[serde(rename = "refreshSummaryState", default, skip_serializing_if = "Option::is_none")]
1226    pub refresh_summary_state: Option<migrate_project_properties::RefreshSummaryState>,
1227    #[doc = "Provisioning state of the migrate project."]
1228    #[serde(rename = "provisioningState", default, skip_serializing_if = "Option::is_none")]
1229    pub provisioning_state: Option<migrate_project_properties::ProvisioningState>,
1230}
1231impl MigrateProjectProperties {
1232    pub fn new() -> Self {
1233        Self::default()
1234    }
1235}
1236pub mod migrate_project_properties {
1237    use super::*;
1238    #[doc = "Gets the refresh summary state."]
1239    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1240    pub enum RefreshSummaryState {
1241        Started,
1242        InProgress,
1243        Completed,
1244        Failed,
1245    }
1246    #[doc = "Provisioning state of the migrate project."]
1247    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1248    #[serde(remote = "ProvisioningState")]
1249    pub enum ProvisioningState {
1250        Accepted,
1251        Creating,
1252        Deleting,
1253        Failed,
1254        Moving,
1255        Succeeded,
1256        #[serde(skip_deserializing)]
1257        UnknownValue(String),
1258    }
1259    impl FromStr for ProvisioningState {
1260        type Err = value::Error;
1261        fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
1262            Self::deserialize(s.into_deserializer())
1263        }
1264    }
1265    impl<'de> Deserialize<'de> for ProvisioningState {
1266        fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1267        where
1268            D: Deserializer<'de>,
1269        {
1270            let s = String::deserialize(deserializer)?;
1271            let deserialized = Self::from_str(&s).unwrap_or(Self::UnknownValue(s));
1272            Ok(deserialized)
1273        }
1274    }
1275    impl Serialize for ProvisioningState {
1276        fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1277        where
1278            S: Serializer,
1279        {
1280            match self {
1281                Self::Accepted => serializer.serialize_unit_variant("ProvisioningState", 0u32, "Accepted"),
1282                Self::Creating => serializer.serialize_unit_variant("ProvisioningState", 1u32, "Creating"),
1283                Self::Deleting => serializer.serialize_unit_variant("ProvisioningState", 2u32, "Deleting"),
1284                Self::Failed => serializer.serialize_unit_variant("ProvisioningState", 3u32, "Failed"),
1285                Self::Moving => serializer.serialize_unit_variant("ProvisioningState", 4u32, "Moving"),
1286                Self::Succeeded => serializer.serialize_unit_variant("ProvisioningState", 5u32, "Succeeded"),
1287                Self::UnknownValue(s) => serializer.serialize_str(s.as_str()),
1288            }
1289        }
1290    }
1291}
1292#[doc = "Migration properties that can be shared by various publishers."]
1293#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1294pub struct MigrationDetails {
1295    #[doc = "Gets or sets the phase of migration of the machine."]
1296    #[serde(rename = "migrationPhase", default, skip_serializing_if = "Option::is_none")]
1297    pub migration_phase: Option<String>,
1298    #[doc = "Gets or sets a value indicating whether migration was tested on the machine."]
1299    #[serde(rename = "migrationTested", default, skip_serializing_if = "Option::is_none")]
1300    pub migration_tested: Option<bool>,
1301    #[doc = "Gets or sets the progress percentage of migration on the machine."]
1302    #[serde(rename = "replicationProgressPercentage", default, skip_serializing_if = "Option::is_none")]
1303    pub replication_progress_percentage: Option<i32>,
1304    #[doc = "Gets or sets the ARM id the migrated VM."]
1305    #[serde(rename = "targetVMArmId", default, skip_serializing_if = "Option::is_none")]
1306    pub target_vm_arm_id: Option<String>,
1307    #[doc = "Gets or sets the time the message was enqueued."]
1308    #[serde(rename = "enqueueTime", default, skip_serializing_if = "Option::is_none")]
1309    pub enqueue_time: Option<String>,
1310    #[doc = "Gets or sets the name of the solution that sent the data."]
1311    #[serde(rename = "solutionName", default, skip_serializing_if = "Option::is_none")]
1312    pub solution_name: Option<String>,
1313    #[doc = "Gets or sets the unique identifier of the machine."]
1314    #[serde(rename = "machineId", default, skip_serializing_if = "Option::is_none")]
1315    pub machine_id: Option<String>,
1316    #[doc = "Gets or sets the unique identifier of the virtual machine manager(vCenter/VMM)."]
1317    #[serde(rename = "machineManagerId", default, skip_serializing_if = "Option::is_none")]
1318    pub machine_manager_id: Option<String>,
1319    #[doc = "Gets or sets the fabric type."]
1320    #[serde(rename = "fabricType", default, skip_serializing_if = "Option::is_none")]
1321    pub fabric_type: Option<String>,
1322    #[doc = "Gets or sets the time of the last modification of the machine details."]
1323    #[serde(rename = "lastUpdatedTime", default, with = "azure_core::date::rfc3339::option")]
1324    pub last_updated_time: Option<::time::OffsetDateTime>,
1325    #[doc = "Gets or sets the name of the machine."]
1326    #[serde(rename = "machineName", default, skip_serializing_if = "Option::is_none")]
1327    pub machine_name: Option<String>,
1328    #[doc = "Gets or sets the list of IP addresses of the machine. IP addresses could be IP V4 or IP V6."]
1329    #[serde(
1330        rename = "ipAddresses",
1331        default,
1332        deserialize_with = "azure_core::util::deserialize_null_as_default",
1333        skip_serializing_if = "Vec::is_empty"
1334    )]
1335    pub ip_addresses: Vec<String>,
1336    #[doc = "Gets or sets the FQDN of the machine."]
1337    #[serde(default, skip_serializing_if = "Option::is_none")]
1338    pub fqdn: Option<String>,
1339    #[doc = "Gets or sets the BIOS ID of the machine."]
1340    #[serde(rename = "biosId", default, skip_serializing_if = "Option::is_none")]
1341    pub bios_id: Option<String>,
1342    #[doc = "Gets or sets the list of MAC addresses of the machine."]
1343    #[serde(
1344        rename = "macAddresses",
1345        default,
1346        deserialize_with = "azure_core::util::deserialize_null_as_default",
1347        skip_serializing_if = "Vec::is_empty"
1348    )]
1349    pub mac_addresses: Vec<String>,
1350    #[doc = "Gets or sets the ISV specific extended information."]
1351    #[serde(rename = "extendedInfo", default, skip_serializing_if = "Option::is_none")]
1352    pub extended_info: Option<serde_json::Value>,
1353}
1354impl MigrationDetails {
1355    pub fn new() -> Self {
1356        Self::default()
1357    }
1358}
1359#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1360pub struct ODataPath {
1361    #[serde(rename = "edmType", default, skip_serializing_if = "Option::is_none")]
1362    pub edm_type: Option<IEdmType>,
1363    #[serde(rename = "navigationSource", default, skip_serializing_if = "Option::is_none")]
1364    pub navigation_source: Option<IEdmNavigationSource>,
1365    #[serde(
1366        default,
1367        deserialize_with = "azure_core::util::deserialize_null_as_default",
1368        skip_serializing_if = "Vec::is_empty"
1369    )]
1370    pub segments: Vec<ODataPathSegment>,
1371    #[serde(rename = "pathTemplate", default, skip_serializing_if = "Option::is_none")]
1372    pub path_template: Option<String>,
1373    #[serde(
1374        default,
1375        deserialize_with = "azure_core::util::deserialize_null_as_default",
1376        skip_serializing_if = "Vec::is_empty"
1377    )]
1378    pub path: Vec<ODataPathSegment>,
1379}
1380impl ODataPath {
1381    pub fn new() -> Self {
1382        Self::default()
1383    }
1384}
1385#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1386pub struct ODataPathSegment {
1387    #[serde(rename = "edmType", default, skip_serializing_if = "Option::is_none")]
1388    pub edm_type: Option<IEdmType>,
1389    #[serde(default, skip_serializing_if = "Option::is_none")]
1390    pub identifier: Option<String>,
1391}
1392impl ODataPathSegment {
1393    pub fn new() -> Self {
1394        Self::default()
1395    }
1396}
1397#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1398pub struct ODataQueryContext {
1399    #[serde(rename = "defaultQuerySettings", default, skip_serializing_if = "Option::is_none")]
1400    pub default_query_settings: Option<DefaultQuerySettings>,
1401    #[serde(default, skip_serializing_if = "Option::is_none")]
1402    pub model: Option<IEdmModel>,
1403    #[serde(rename = "elementType", default, skip_serializing_if = "Option::is_none")]
1404    pub element_type: Option<IEdmType>,
1405    #[serde(rename = "navigationSource", default, skip_serializing_if = "Option::is_none")]
1406    pub navigation_source: Option<IEdmNavigationSource>,
1407    #[serde(rename = "elementClrType", default, skip_serializing_if = "Option::is_none")]
1408    pub element_clr_type: Option<String>,
1409    #[serde(default, skip_serializing_if = "Option::is_none")]
1410    pub path: Option<ODataPath>,
1411    #[serde(rename = "requestContainer", default, skip_serializing_if = "Option::is_none")]
1412    pub request_container: Option<IServiceProvider>,
1413}
1414impl ODataQueryContext {
1415    pub fn new() -> Self {
1416        Self::default()
1417    }
1418}
1419#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1420pub struct ODataQueryOptions1 {
1421    #[serde(default, skip_serializing_if = "Option::is_none")]
1422    pub filter: Option<FilterQueryOption>,
1423}
1424impl ODataQueryOptions1 {
1425    pub fn new() -> Self {
1426        Self::default()
1427    }
1428}
1429#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1430pub struct ODataQueryValidator {}
1431impl ODataQueryValidator {
1432    pub fn new() -> Self {
1433        Self::default()
1434    }
1435}
1436#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1437pub struct ODataRawQueryOptions {
1438    #[serde(default, skip_serializing_if = "Option::is_none")]
1439    pub filter: Option<String>,
1440}
1441impl ODataRawQueryOptions {
1442    pub fn new() -> Self {
1443        Self::default()
1444    }
1445}
1446#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1447pub struct Object {}
1448impl Object {
1449    pub fn new() -> Self {
1450        Self::default()
1451    }
1452}
1453#[doc = "A REST API operation supported by the provider."]
1454#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1455pub struct Operation {
1456    #[doc = "Name of the operation."]
1457    #[serde(default, skip_serializing_if = "Option::is_none")]
1458    pub name: Option<String>,
1459    #[doc = "Displayable properties of the operation."]
1460    #[serde(default, skip_serializing_if = "Option::is_none")]
1461    pub display: Option<OperationDisplay>,
1462    #[doc = "Origin of the operation."]
1463    #[serde(default, skip_serializing_if = "Option::is_none")]
1464    pub origin: Option<String>,
1465}
1466impl Operation {
1467    pub fn new() -> Self {
1468        Self::default()
1469    }
1470}
1471#[doc = "Displayable properties of the operation."]
1472#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1473pub struct OperationDisplay {
1474    #[doc = "Provider of the operation."]
1475    #[serde(default, skip_serializing_if = "Option::is_none")]
1476    pub provider: Option<String>,
1477    #[doc = "Resource operated on by the operation."]
1478    #[serde(default, skip_serializing_if = "Option::is_none")]
1479    pub resource: Option<String>,
1480    #[doc = "Operation Type."]
1481    #[serde(default, skip_serializing_if = "Option::is_none")]
1482    pub operation: Option<String>,
1483    #[doc = "Description of the operation."]
1484    #[serde(default, skip_serializing_if = "Option::is_none")]
1485    pub description: Option<String>,
1486}
1487impl OperationDisplay {
1488    pub fn new() -> Self {
1489        Self::default()
1490    }
1491}
1492#[doc = "List of API operations."]
1493#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1494pub struct OperationResultList {
1495    #[doc = "List of operations."]
1496    #[serde(
1497        default,
1498        deserialize_with = "azure_core::util::deserialize_null_as_default",
1499        skip_serializing_if = "Vec::is_empty"
1500    )]
1501    pub value: Vec<Operation>,
1502}
1503impl azure_core::Continuable for OperationResultList {
1504    type Continuation = String;
1505    fn continuation(&self) -> Option<Self::Continuation> {
1506        None
1507    }
1508}
1509impl OperationResultList {
1510    pub fn new() -> Self {
1511        Self::default()
1512    }
1513}
1514#[doc = "The project summary class."]
1515#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1516pub struct ProjectSummary {
1517    #[doc = "Gets or sets the state of refresh summary."]
1518    #[serde(rename = "refreshSummaryState", default, skip_serializing_if = "Option::is_none")]
1519    pub refresh_summary_state: Option<project_summary::RefreshSummaryState>,
1520    #[doc = "Gets or sets the time when summary was last refreshed."]
1521    #[serde(rename = "lastSummaryRefreshedTime", default, with = "azure_core::date::rfc3339::option")]
1522    pub last_summary_refreshed_time: Option<::time::OffsetDateTime>,
1523    #[doc = "Gets or sets the extended summary."]
1524    #[serde(rename = "extendedSummary", default, skip_serializing_if = "Option::is_none")]
1525    pub extended_summary: Option<serde_json::Value>,
1526}
1527impl ProjectSummary {
1528    pub fn new() -> Self {
1529        Self::default()
1530    }
1531}
1532pub mod project_summary {
1533    use super::*;
1534    #[doc = "Gets or sets the state of refresh summary."]
1535    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1536    pub enum RefreshSummaryState {
1537        Started,
1538        InProgress,
1539        Completed,
1540        Failed,
1541    }
1542}
1543#[doc = "Gets the Instance type."]
1544#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1545#[serde(tag = "instanceType")]
1546pub enum ProjectSummaryUnion {
1547    Databases(DatabaseProjectSummary),
1548    Servers(ServersProjectSummary),
1549}
1550#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1551pub struct RangeVariable {
1552    #[serde(default, skip_serializing_if = "Option::is_none")]
1553    pub name: Option<String>,
1554    #[serde(rename = "typeReference", default, skip_serializing_if = "Option::is_none")]
1555    pub type_reference: Option<IEdmTypeReference>,
1556    #[serde(default, skip_serializing_if = "Option::is_none")]
1557    pub kind: Option<i32>,
1558}
1559impl RangeVariable {
1560    pub fn new() -> Self {
1561        Self::default()
1562    }
1563}
1564#[doc = "Class representing the refresh summary input."]
1565#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1566pub struct RefreshSummaryInput {
1567    #[doc = "Gets or sets the goal for which summary needs to be refreshed."]
1568    #[serde(default, skip_serializing_if = "Option::is_none")]
1569    pub goal: Option<refresh_summary_input::Goal>,
1570}
1571impl RefreshSummaryInput {
1572    pub fn new() -> Self {
1573        Self::default()
1574    }
1575}
1576pub mod refresh_summary_input {
1577    use super::*;
1578    #[doc = "Gets or sets the goal for which summary needs to be refreshed."]
1579    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1580    pub enum Goal {
1581        Servers,
1582        Databases,
1583    }
1584}
1585#[doc = "Class representing the refresh summary status of the migrate project."]
1586#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1587pub struct RefreshSummaryResult {
1588    #[doc = "Gets or sets a value indicating whether the migrate project summary is refreshed."]
1589    #[serde(rename = "isRefreshed", default, skip_serializing_if = "Option::is_none")]
1590    pub is_refreshed: Option<bool>,
1591}
1592impl RefreshSummaryResult {
1593    pub fn new() -> Self {
1594        Self::default()
1595    }
1596}
1597#[doc = "Class representing the register tool input."]
1598#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1599pub struct RegisterToolInput {
1600    #[doc = "Gets or sets the tool to be registered."]
1601    #[serde(default, skip_serializing_if = "Option::is_none")]
1602    pub tool: Option<register_tool_input::Tool>,
1603}
1604impl RegisterToolInput {
1605    pub fn new() -> Self {
1606        Self::default()
1607    }
1608}
1609pub mod register_tool_input {
1610    use super::*;
1611    #[doc = "Gets or sets the tool to be registered."]
1612    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1613    pub enum Tool {
1614        ServerDiscovery,
1615        ServerAssessment,
1616        ServerMigration,
1617        Cloudamize,
1618        Turbonomic,
1619        Zerto,
1620        CorentTech,
1621        ServerAssessmentV1,
1622        #[serde(rename = "ServerMigration_Replication")]
1623        ServerMigrationReplication,
1624        Carbonite,
1625        DataMigrationAssistant,
1626        DatabaseMigrationService,
1627    }
1628}
1629#[doc = "Class representing the registration status of a tool with the migrate project."]
1630#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1631pub struct RegistrationResult {
1632    #[doc = "Gets or sets a value indicating whether the tool is registered or not."]
1633    #[serde(rename = "isRegistered", default, skip_serializing_if = "Option::is_none")]
1634    pub is_registered: Option<bool>,
1635}
1636impl RegistrationResult {
1637    pub fn new() -> Self {
1638        Self::default()
1639    }
1640}
1641#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1642pub struct SelectExpandClause {
1643    #[serde(
1644        rename = "selectedItems",
1645        default,
1646        deserialize_with = "azure_core::util::deserialize_null_as_default",
1647        skip_serializing_if = "Vec::is_empty"
1648    )]
1649    pub selected_items: Vec<SelectItem>,
1650    #[serde(rename = "allSelected", default, skip_serializing_if = "Option::is_none")]
1651    pub all_selected: Option<bool>,
1652}
1653impl SelectExpandClause {
1654    pub fn new() -> Self {
1655        Self::default()
1656    }
1657}
1658#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1659pub struct SelectExpandQueryValidator {}
1660impl SelectExpandQueryValidator {
1661    pub fn new() -> Self {
1662        Self::default()
1663    }
1664}
1665#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1666pub struct SelectItem {}
1667impl SelectItem {
1668    pub fn new() -> Self {
1669        Self::default()
1670    }
1671}
1672#[doc = "Class representing the servers project summary."]
1673#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1674pub struct ServersProjectSummary {
1675    #[serde(flatten)]
1676    pub project_summary: ProjectSummary,
1677    #[doc = "Gets or sets the count of entities discovered."]
1678    #[serde(rename = "discoveredCount", default, skip_serializing_if = "Option::is_none")]
1679    pub discovered_count: Option<i32>,
1680    #[doc = "Gets or sets the count of entities assessed."]
1681    #[serde(rename = "assessedCount", default, skip_serializing_if = "Option::is_none")]
1682    pub assessed_count: Option<i32>,
1683    #[doc = "Gets or sets the count of entities being replicated."]
1684    #[serde(rename = "replicatingCount", default, skip_serializing_if = "Option::is_none")]
1685    pub replicating_count: Option<i32>,
1686    #[doc = "Gets or sets the count of entities test migrated."]
1687    #[serde(rename = "testMigratedCount", default, skip_serializing_if = "Option::is_none")]
1688    pub test_migrated_count: Option<i32>,
1689    #[doc = "Gets or sets the count of entities migrated."]
1690    #[serde(rename = "migratedCount", default, skip_serializing_if = "Option::is_none")]
1691    pub migrated_count: Option<i32>,
1692}
1693impl ServersProjectSummary {
1694    pub fn new() -> Self {
1695        Self::default()
1696    }
1697}
1698#[doc = "Class representing the servers solution summary."]
1699#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1700pub struct ServersSolutionSummary {
1701    #[doc = "Gets or sets the count of servers discovered."]
1702    #[serde(rename = "discoveredCount", default, skip_serializing_if = "Option::is_none")]
1703    pub discovered_count: Option<i32>,
1704    #[doc = "Gets or sets the count of servers assessed."]
1705    #[serde(rename = "assessedCount", default, skip_serializing_if = "Option::is_none")]
1706    pub assessed_count: Option<i32>,
1707    #[doc = "Gets or sets the count of servers being replicated."]
1708    #[serde(rename = "replicatingCount", default, skip_serializing_if = "Option::is_none")]
1709    pub replicating_count: Option<i32>,
1710    #[doc = "Gets or sets the count of servers test migrated."]
1711    #[serde(rename = "testMigratedCount", default, skip_serializing_if = "Option::is_none")]
1712    pub test_migrated_count: Option<i32>,
1713    #[doc = "Gets or sets the count of servers migrated."]
1714    #[serde(rename = "migratedCount", default, skip_serializing_if = "Option::is_none")]
1715    pub migrated_count: Option<i32>,
1716}
1717impl ServersSolutionSummary {
1718    pub fn new() -> Self {
1719        Self::default()
1720    }
1721}
1722#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1723pub struct SingleValueNode {
1724    #[serde(rename = "typeReference", default, skip_serializing_if = "Option::is_none")]
1725    pub type_reference: Option<IEdmTypeReference>,
1726    #[serde(default, skip_serializing_if = "Option::is_none")]
1727    pub kind: Option<single_value_node::Kind>,
1728}
1729impl SingleValueNode {
1730    pub fn new() -> Self {
1731        Self::default()
1732    }
1733}
1734pub mod single_value_node {
1735    use super::*;
1736    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1737    pub enum Kind {
1738        None,
1739        Constant,
1740        Convert,
1741        NonResourceRangeVariableReference,
1742        BinaryOperator,
1743        UnaryOperator,
1744        SingleValuePropertyAccess,
1745        CollectionPropertyAccess,
1746        SingleValueFunctionCall,
1747        Any,
1748        CollectionNavigationNode,
1749        SingleNavigationNode,
1750        SingleValueOpenPropertyAccess,
1751        SingleResourceCast,
1752        All,
1753        CollectionResourceCast,
1754        ResourceRangeVariableReference,
1755        SingleResourceFunctionCall,
1756        CollectionFunctionCall,
1757        CollectionResourceFunctionCall,
1758        NamedFunctionParameter,
1759        ParameterAlias,
1760        EntitySet,
1761        KeyLookup,
1762        SearchTerm,
1763        CollectionOpenPropertyAccess,
1764        CollectionComplexNode,
1765        SingleComplexNode,
1766        Count,
1767        SingleValueCast,
1768        CollectionPropertyNode,
1769        AggregatedCollectionPropertyNode,
1770        In,
1771        CollectionConstant,
1772    }
1773}
1774#[doc = "Solution REST Resource."]
1775#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1776pub struct Solution {
1777    #[doc = "Gets the relative URL to get to this REST resource."]
1778    #[serde(default, skip_serializing_if = "Option::is_none")]
1779    pub id: Option<String>,
1780    #[doc = "Gets the name of this REST resource."]
1781    #[serde(default, skip_serializing_if = "Option::is_none")]
1782    pub name: Option<String>,
1783    #[doc = "Gets the type of this REST resource."]
1784    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1785    pub type_: Option<String>,
1786    #[doc = "Gets or sets the ETAG for optimistic concurrency control."]
1787    #[serde(default, skip_serializing_if = "Option::is_none")]
1788    pub etag: Option<String>,
1789    #[doc = "Class for solution properties."]
1790    #[serde(default, skip_serializing_if = "Option::is_none")]
1791    pub properties: Option<SolutionProperties>,
1792}
1793impl Solution {
1794    pub fn new() -> Self {
1795        Self::default()
1796    }
1797}
1798#[doc = "Class representing the config for the solution in the migrate project."]
1799#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1800pub struct SolutionConfig {
1801    #[doc = "Gets or sets the publisher sas uri for the solution."]
1802    #[serde(rename = "publisherSasUri", default, skip_serializing_if = "Option::is_none")]
1803    pub publisher_sas_uri: Option<String>,
1804}
1805impl SolutionConfig {
1806    pub fn new() -> Self {
1807        Self::default()
1808    }
1809}
1810#[doc = "Class representing the details of the solution."]
1811#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1812pub struct SolutionDetails {
1813    #[doc = "Gets or sets the count of groups reported by the solution."]
1814    #[serde(rename = "groupCount", default, skip_serializing_if = "Option::is_none")]
1815    pub group_count: Option<i32>,
1816    #[doc = "Gets or sets the count of assessments reported by the solution."]
1817    #[serde(rename = "assessmentCount", default, skip_serializing_if = "Option::is_none")]
1818    pub assessment_count: Option<i32>,
1819    #[doc = "Gets or sets the extended details reported by the solution."]
1820    #[serde(rename = "extendedDetails", default, skip_serializing_if = "Option::is_none")]
1821    pub extended_details: Option<serde_json::Value>,
1822}
1823impl SolutionDetails {
1824    pub fn new() -> Self {
1825        Self::default()
1826    }
1827}
1828#[doc = "Class for solution properties."]
1829#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1830pub struct SolutionProperties {
1831    #[doc = "Gets or sets the tool being used in the solution."]
1832    #[serde(default, skip_serializing_if = "Option::is_none")]
1833    pub tool: Option<solution_properties::Tool>,
1834    #[doc = "Gets or sets the purpose of the solution."]
1835    #[serde(default, skip_serializing_if = "Option::is_none")]
1836    pub purpose: Option<solution_properties::Purpose>,
1837    #[doc = "Gets or sets the goal of the solution."]
1838    #[serde(default, skip_serializing_if = "Option::is_none")]
1839    pub goal: Option<solution_properties::Goal>,
1840    #[doc = "Gets or sets the current status of the solution."]
1841    #[serde(default, skip_serializing_if = "Option::is_none")]
1842    pub status: Option<solution_properties::Status>,
1843    #[doc = "Gets or sets the cleanup state of the solution."]
1844    #[serde(rename = "cleanupState", default, skip_serializing_if = "Option::is_none")]
1845    pub cleanup_state: Option<solution_properties::CleanupState>,
1846    #[doc = "The solution summary class."]
1847    #[serde(default, skip_serializing_if = "Option::is_none")]
1848    pub summary: Option<SolutionSummaryUnion>,
1849    #[doc = "Class representing the details of the solution."]
1850    #[serde(default, skip_serializing_if = "Option::is_none")]
1851    pub details: Option<SolutionDetails>,
1852}
1853impl SolutionProperties {
1854    pub fn new() -> Self {
1855        Self::default()
1856    }
1857}
1858pub mod solution_properties {
1859    use super::*;
1860    #[doc = "Gets or sets the tool being used in the solution."]
1861    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1862    pub enum Tool {
1863        ServerDiscovery,
1864        ServerAssessment,
1865        ServerMigration,
1866        Cloudamize,
1867        Turbonomic,
1868        Zerto,
1869        CorentTech,
1870        ServerAssessmentV1,
1871        #[serde(rename = "ServerMigration_Replication")]
1872        ServerMigrationReplication,
1873        Carbonite,
1874        DataMigrationAssistant,
1875        DatabaseMigrationService,
1876    }
1877    #[doc = "Gets or sets the purpose of the solution."]
1878    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1879    pub enum Purpose {
1880        Discovery,
1881        Assessment,
1882        Migration,
1883    }
1884    #[doc = "Gets or sets the goal of the solution."]
1885    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1886    pub enum Goal {
1887        Servers,
1888        Databases,
1889    }
1890    #[doc = "Gets or sets the current status of the solution."]
1891    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1892    pub enum Status {
1893        Inactive,
1894        Active,
1895    }
1896    #[doc = "Gets or sets the cleanup state of the solution."]
1897    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1898    pub enum CleanupState {
1899        None,
1900        Started,
1901        InProgress,
1902        Completed,
1903        Failed,
1904    }
1905}
1906#[doc = "Gets the Instance type."]
1907#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1908#[serde(tag = "instanceType")]
1909pub enum SolutionSummaryUnion {
1910    Databases(DatabasesSolutionSummary),
1911    Servers(ServersSolutionSummary),
1912}
1913#[doc = "Collection of solutions."]
1914#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1915pub struct SolutionsCollection {
1916    #[doc = "Gets or sets the list of solutions."]
1917    #[serde(
1918        default,
1919        deserialize_with = "azure_core::util::deserialize_null_as_default",
1920        skip_serializing_if = "Vec::is_empty"
1921    )]
1922    pub value: Vec<Solution>,
1923    #[doc = "Gets or sets the value of next link."]
1924    #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1925    pub next_link: Option<String>,
1926}
1927impl SolutionsCollection {
1928    pub fn new() -> Self {
1929        Self::default()
1930    }
1931}
1932#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1933pub struct TransformationNode {
1934    #[serde(default, skip_serializing_if = "Option::is_none")]
1935    pub kind: Option<transformation_node::Kind>,
1936}
1937impl TransformationNode {
1938    pub fn new() -> Self {
1939        Self::default()
1940    }
1941}
1942pub mod transformation_node {
1943    use super::*;
1944    #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1945    pub enum Kind {
1946        Aggregate,
1947        GroupBy,
1948        Filter,
1949        Compute,
1950    }
1951}