upcloud_rs/data/
prices.rs

1use std::collections::HashMap;
2
3use serde::Deserialize;
4
5#[derive(Deserialize, Debug)]
6pub struct UpcloudPricesListRoot {
7    pub prices: UpcloudPricesZoneRoot,
8}
9
10#[derive(Deserialize, Debug)]
11pub struct UpcloudPricesZoneRoot {
12    pub zone: Vec<UpcloudPricesZone>,
13}
14
15#[derive(Deserialize, Debug)]
16pub struct UpcloudPricesZone {
17    pub name: String,
18    pub firewall: UpcloudPrice,
19    pub io_request_backup: UpcloudPrice,
20    pub io_request_hdd: UpcloudPrice,
21    pub io_request_maxiops: UpcloudPrice,
22    pub ipv4_address: UpcloudPrice,
23    pub ipv6_address: UpcloudPrice,
24    pub public_ipv4_bandwidth_in: UpcloudPrice,
25    pub public_ipv4_bandwidth_out: UpcloudPrice,
26    pub public_ipv6_bandwidth_in: UpcloudPrice,
27    pub public_ipv6_bandwidth_out: UpcloudPrice,
28    pub server_core: UpcloudPrice,
29    pub server_memory: UpcloudPrice,
30    pub storage_backup: UpcloudPrice,
31    pub storage_hdd: UpcloudPrice,
32    pub storage_maxiops: UpcloudPrice,
33    #[serde(flatten)]
34    pub extra: HashMap<String, UpcloudPrice>,
35}
36
37#[derive(Deserialize, Debug)]
38pub struct UpcloudPrice {
39    /// The amount of objects the price applies to
40    pub amount: f32,
41    /// price in euro cent per hour. to get euros multiply with 100
42    pub price: f32,
43}