linode_api/objects/v4/linode_instances/
ip_address.rs

1use std::net::IpAddr;
2
3use serde::{Deserialize, Serialize};
4use serde_enum_str::{Deserialize_enum_str, Serialize_enum_str};
5use serde_json::{Map, Value};
6
7//
8#[derive(Deserialize, Serialize, Debug, Clone)]
9pub struct IpAddress {
10    pub address: IpAddr,
11    pub public: bool,
12    pub r#type: IpAddressType,
13    #[serde(flatten)]
14    pub _extra: Map<String, Value>,
15}
16
17//
18#[derive(Deserialize_enum_str, Serialize_enum_str, Debug, Clone, PartialEq, Eq)]
19#[serde(rename_all = "snake_case")]
20pub enum IpAddressType {
21    Ipv4,
22    Ipv6,
23    #[serde(rename = "ipv6/pool")]
24    Ipv6Pool,
25    #[serde(rename = "ipv6/range")]
26    Ipv6Range,
27    #[serde(other)]
28    Other(String),
29}