redis_cloud/models/
subscription.rs1use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct CloudSubscription {
9 pub id: u32,
10 pub name: String,
11 pub status: String,
12 pub payment_method_id: Option<u32>,
13 pub memory_storage: Option<String>,
14 pub persistent_storage_encryption: Option<bool>,
15 pub cloud_provider: Option<CloudProvider>,
16 pub region: Option<String>,
17
18 #[serde(flatten)]
19 pub extra: Value,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct CloudProvider {
24 pub provider: String,
25 pub cloud_account_id: Option<u32>,
26 pub regions: Option<Vec<CloudRegion>>,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct CloudRegion {
31 pub region: String,
32 pub networking_deployment_cidr: Option<String>,
33 pub preferred_availability_zones: Option<Vec<String>>,
34 pub multiple_availability_zones: Option<bool>,
35}
36
37#[derive(Debug, Serialize)]
39pub struct CreateSubscriptionRequest {
40 pub name: String,
41 pub payment_method_id: u32,
42 pub memory_storage: String,
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub persistent_storage_encryption: Option<bool>,
45 pub cloud_provider: CloudProviderConfig,
46}
47
48#[derive(Debug, Serialize)]
49pub struct CloudProviderConfig {
50 pub provider: String,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub cloud_account_id: Option<u32>,
53 pub regions: Vec<CloudRegionConfig>,
54}
55
56#[derive(Debug, Serialize)]
57pub struct CloudRegionConfig {
58 pub region: String,
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub networking_deployment_cidr: Option<String>,
61 #[serde(skip_serializing_if = "Option::is_none")]
62 pub preferred_availability_zones: Option<Vec<String>>,
63 #[serde(skip_serializing_if = "Option::is_none")]
64 pub multiple_availability_zones: Option<bool>,
65}
66
67#[derive(Debug, Serialize)]
69pub struct UpdateSubscriptionRequest {
70 #[serde(skip_serializing_if = "Option::is_none")]
71 pub name: Option<String>,
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub payment_method_id: Option<u32>,
74 #[serde(skip_serializing_if = "Option::is_none")]
75 pub memory_storage: Option<String>,
76}