firebase_admin_sdk/remote_config/
models.rs1use std::collections::HashMap;
2
3#[derive(Debug, serde::Serialize, serde::Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct RemoteConfig {
7 #[serde(default)]
9 pub conditions: Vec<RemoteConfigCondition>,
10 #[serde(default)]
12 pub parameters: HashMap<String, RemoteConfigParameter>,
13 #[serde(default)]
15 pub parameter_groups: HashMap<String, RemoteConfigParameterGroup>,
16 #[serde(skip)]
18 pub etag: String,
19 #[serde(default)]
21 pub version: Option<Version>,
22}
23
24#[derive(Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
26#[serde(rename_all = "camelCase")]
27pub struct RemoteConfigCondition {
28 pub name: String,
30 pub expression: String,
32 pub tag_color: Option<String>,
34}
35
36#[derive(Debug, serde::Serialize, serde::Deserialize, PartialEq)]
38#[serde(rename_all = "camelCase")]
39pub struct RemoteConfigParameter {
40 pub default_value: Option<RemoteConfigParameterValue>,
42 #[serde(default)]
44 pub conditional_values: HashMap<String, RemoteConfigParameterValue>,
45 pub description: Option<String>,
47}
48
49#[derive(Debug, serde::Serialize, serde::Deserialize, PartialEq)]
51#[serde(rename_all = "camelCase")]
52#[serde(untagged)]
53pub enum RemoteConfigParameterValue {
54 Value {
56 value: String,
58 },
59 UseInAppDefault {
61 use_in_app_default: bool,
63 },
64}
65
66#[derive(Debug, serde::Serialize, serde::Deserialize, PartialEq)]
68#[serde(rename_all = "camelCase")]
69pub struct RemoteConfigParameterGroup {
70 pub description: Option<String>,
72 pub parameters: HashMap<String, RemoteConfigParameter>,
74}
75
76#[derive(Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
78#[serde(rename_all = "camelCase")]
79pub struct Version {
80 pub version_number: String,
82 pub update_time: String,
84 pub update_user: Option<User>,
86 pub description: Option<String>,
88 pub update_origin: String,
90 pub update_type: String,
92}
93
94#[derive(Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
96#[serde(rename_all = "camelCase")]
97pub struct User {
98 pub email: String,
100 pub name: Option<String>,
102 pub image_url: Option<String>,
104}
105
106#[derive(Debug, Default, serde::Serialize)]
108#[serde(rename_all = "camelCase")]
109pub struct ListVersionsOptions {
110 #[serde(skip_serializing_if = "Option::is_none")]
112 pub page_size: Option<usize>,
113 #[serde(skip_serializing_if = "Option::is_none")]
115 pub page_token: Option<String>,
116}
117
118#[derive(Debug, serde::Deserialize)]
120#[serde(rename_all = "camelCase")]
121pub struct ListVersionsResult {
122 pub versions: Vec<Version>,
124 #[serde(rename = "nextPageToken")]
126 pub next_page_token: Option<String>,
127}
128
129#[derive(Debug, serde::Serialize)]
131#[serde(rename_all = "camelCase")]
132pub(crate) struct RollbackRequest {
133 pub(crate) version_number: String,
135}