1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
use serde::Deserialize;

#[derive(Deserialize, Debug)]
pub struct SystemEndpointStatus {
    #[serde(rename = "IsLocal")]
    pub is_local: bool,
    #[serde(rename = "IsInNetwork")]
    pub is_in_network: bool,
}

#[derive(Deserialize, Debug)]
pub struct SystemInformations {
    #[serde(rename = "LocalAddress")]
    pub local_address: String,
    #[serde(rename = "ServerName")]
    pub server_name: String,
    #[serde(rename = "Version")]
    pub version: String,
    #[serde(rename = "ProductName")]
    pub product_name: Option<String>,
    #[serde(rename = "Id")]
    pub id: String,
    #[serde(rename = "StartupWizardCompleted")]
    pub startup_wizard_complete: Option<bool>,
    #[serde(rename = "OperatingSystemDisplayName")]
    pub operating_system: String,
    #[serde(rename = "PackageName")]
    pub package_name: Option<String>,
    #[serde(rename = "HasPendingRestart")]
    pub has_pending_restart: bool,
    #[serde(rename = "IsShuttingDown")]
    pub is_shutting_down: bool,
    #[serde(rename = "SupportsLibraryMonitor")]
    pub supports_library_monitor: bool,
    #[serde(rename = "WebSocketPortNumber")]
    pub websocket_port: u16,
    #[serde(rename = "CompletedInstallations")]
    pub completed_installations: Vec<CompletedInstallations>,
    #[serde(rename = "CanSelfRestart")]
    pub can_self_restart: bool,
    #[serde(rename = "CanLaunchWebBrowser")]
    pub can_launch_webbrowser: bool,
    #[serde(rename = "ProgramDataPath")]
    pub program_data_path: String,
    #[serde(rename = "WebPath")]
    pub web_path: String,
    #[serde(rename = "ItemsByNamePath")]
    pub items_by_name_path: String,
    #[serde(rename = "CachePath")]
    pub cache_path: String,
    #[serde(rename = "LogPath")]
    pub log_path: String,
    #[serde(rename = "InternalMetadataPath")]
    pub internal_metadata_path: String,
    #[serde(rename = "TranscodingTempPath")]
    pub transcoding_temp_path: String,
    #[serde(rename = "HasUpdateAvailable")]
    pub has_update_available: bool,
    #[serde(rename = "EncoderLocation")]
    pub encoder_location: String,
    #[serde(rename = "SystemArchitecture")]
    pub system_arch: String,
}

#[derive(Deserialize, Debug)]
pub struct CompletedInstallations {
    #[serde(rename = "Guid")]
    pub guid: String,
    #[serde(rename = "Name")]
    pub name: String,
    #[serde(rename = "Version")]
    pub version: Version,
    #[serde(rename = "Changelog")]
    pub changelog: String,
    #[serde(rename = "SourceUrl")]
    pub source_url: String,
    #[serde(rename = "Checksum")]
    pub checksum: String,
    #[serde(rename = "PackageInfo")]
    pub package_info: PackageInfo,
}

#[derive(Deserialize, Debug)]
pub struct Version {
    #[serde(rename = "Major")]
    pub major: u8,
    #[serde(rename = "Minor")]
    pub minor: u8,
    #[serde(rename = "Build")]
    pub build: u16,
    #[serde(rename = "Revision")]
    pub revision: u16,
    #[serde(rename = "MajorRevision")]
    pub major_revision: u16,
    #[serde(rename = "MinorRevision")]
    pub minor_revision: u16,
}

#[derive(Deserialize, Debug)]
pub struct PackageInfo {
    pub name: String,
    pub description: String,
    pub overview: String,
    pub owner: String,
    pub category: String,
    pub guid: String,
    pub versions: Vec<PackageVersion>,
    pub image_url: String,
}

#[derive(Deserialize, Debug)]
pub struct PackageVersion {
    pub version: String,
    pub version_number: Version,
    pub changelog: String,
    pub target_abi: String,
    pub source_url: String,
    pub checksum: String,
    pub timestamp: String,
    pub repository_name: String,
    pub repository_url: String,
}

#[derive(Deserialize, Debug)]
pub struct PublicSystemInformations {
    #[serde(rename = "LocalAddress")]
    pub local_address: String,
    #[serde(rename = "ServerName")]
    pub server_name: String,
    #[serde(rename = "Version")]
    pub version: String,
    #[serde(rename = "ProductName")]
    pub product_name: String,
    #[serde(rename = "OperatingSystem")]
    pub operating_system: String,
    #[serde(rename = "Id")]
    pub id: String,
    #[serde(rename = "StartupWizardCompleted")]
    pub startup_wizard_completed: bool,
}