redis_enterprise/
types.rs

1//! Specialized types for Redis Enterprise API objects
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6/// Database group - represents a group of databases sharing a memory pool
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct BdbGroup {
9    pub uid: u32,
10    pub memory_size: u64,
11    pub members: Vec<u32>,
12}
13
14/// Database connections auditing configuration
15#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct DbConnsAuditingConfig {
17    pub audit_protocol: String,
18    pub audit_address: String,
19    pub audit_port: u16,
20    pub audit_reconnect_interval: Option<u32>,
21    pub audit_reconnect_max_attempts: Option<u32>,
22}
23
24/// Cluster check result for diagnostics
25#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct CheckResult {
27    pub cluster_test_result: Option<String>,
28    pub nodes: Option<Vec<NodeCheckResult>>,
29}
30
31/// Node check result for diagnostics
32#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct NodeCheckResult {
34    pub node_uid: u32,
35    pub status: String,
36    pub checks: Option<Vec<Value>>,
37}
38
39/// Services configuration
40#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct ServicesConfiguration {
42    pub cm_server: Option<ServiceConfig>,
43    pub crdb_coordinator: Option<ServiceConfig>,
44    pub crdb_worker: Option<ServiceConfig>,
45    pub mdns_server: Option<ServiceConfig>,
46    pub pdns_server: Option<ServiceConfig>,
47    pub redis_server: Option<ServiceConfig>,
48    pub saslauthd: Option<ServiceConfig>,
49    pub stats_archiver: Option<ServiceConfig>,
50}
51
52/// Individual service configuration
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct ServiceConfig {
55    pub enabled: bool,
56    pub port: Option<u16>,
57    pub settings: Option<Value>,
58}
59
60/// OCSP (Online Certificate Status Protocol) configuration
61#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct OcspConfig {
63    pub ocsp_url: String,
64    pub ocsp_response_timeout_seconds: Option<u32>,
65    pub query_frequency_seconds: Option<u32>,
66    pub recovery_frequency_seconds: Option<u32>,
67    pub recovery_max_tries: Option<u32>,
68    pub responder_cert: Option<String>,
69}
70
71/// OCSP status information
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct OcspStatus {
74    pub cert_name: String,
75    pub ocsp_status: String,
76    pub produced_at: Option<String>,
77    pub responder_url: Option<String>,
78    pub this_update: Option<String>,
79    pub next_update: Option<String>,
80}
81
82/// JWT authorization configuration
83#[derive(Debug, Clone, Serialize, Deserialize)]
84pub struct JwtAuthorize {
85    pub jwks_uri: String,
86}
87
88/// State machine status (for long-running operations)
89#[derive(Debug, Clone, Serialize, Deserialize)]
90pub struct StateMachine {
91    pub id: String,
92    pub name: String,
93    pub state: String,
94    pub status: String,
95    pub progress: Option<f64>,
96    pub created: Option<String>,
97    pub updated: Option<String>,
98    pub error: Option<String>,
99}
100
101/// Module metadata information
102#[derive(Debug, Clone, Serialize, Deserialize)]
103pub struct ModuleMetadata {
104    pub name: String,
105    pub version: String,
106    pub semantic_version: Option<String>,
107    pub min_redis_version: Option<String>,
108    pub min_redis_pack_version: Option<String>,
109    pub capabilities: Option<Vec<String>>,
110    pub command_line_args: Option<String>,
111    pub config_command: Option<String>,
112    pub dependencies: Option<Vec<String>>,
113    pub description: Option<String>,
114    pub display_name: Option<String>,
115    pub email: Option<String>,
116    pub homepage: Option<String>,
117    pub is_bundled: Option<bool>,
118    pub license: Option<String>,
119    pub os_list: Option<Vec<String>>,
120    pub sha256: Option<String>,
121    pub uid: Option<String>,
122    pub architecture_list: Option<Vec<String>>,
123    pub author: Option<String>,
124}
125
126/// Database command statistics
127#[derive(Debug, Clone, Serialize, Deserialize)]
128pub struct DbCommand {
129    pub command: String,
130    pub count: u64,
131}
132
133/// Action v2 - enhanced action tracking
134#[derive(Debug, Clone, Serialize, Deserialize)]
135pub struct ActionV2 {
136    pub action_uid: String,
137    pub name: String,
138    pub action_type: String,
139    pub creation_time: u64,
140    pub progress: f64,
141    pub status: String,
142    pub additional_info: Option<ActionAdditionalInfo>,
143}
144
145/// Additional info for ActionV2
146#[derive(Debug, Clone, Serialize, Deserialize)]
147pub struct ActionAdditionalInfo {
148    pub description: Option<String>,
149    pub error: Option<String>,
150    pub object_type: Option<String>,
151    pub object_uid: Option<String>,
152}
153
154// Types are already public, no need for re-export