Skip to main content

meilisearch_sdk/
network.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3use uuid::Uuid;
4
5#[derive(Clone, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct RemoteConfig {
8    pub url: String,
9    #[serde(rename = "searchApiKey")]
10    pub search_api_key: String,
11    #[serde(rename = "writeApiKey", skip_serializing_if = "Option::is_none")]
12    // present in responses since 1.19
13    pub write_api_key: Option<String>,
14}
15
16pub type RemotesMap = HashMap<String, RemoteConfig>;
17pub type RemotesUpdateMap = HashMap<String, Option<RemoteConfig>>;
18
19/// Full network state returned by GET /network
20#[derive(Clone, Serialize, Deserialize)]
21#[serde(rename_all = "camelCase")]
22pub struct NetworkState {
23    pub remotes: Option<RemotesMap>,
24    #[serde(rename = "self")]
25    pub self_name: Option<String>,
26    pub leader: Option<String>,
27    pub version: Option<Uuid>,
28}
29
30/// Partial update body for PATCH /network
31#[derive(Default, Clone, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct NetworkUpdate {
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub remotes: Option<RemotesUpdateMap>,
36    #[serde(rename = "self", skip_serializing_if = "Option::is_none")]
37    pub self_name: Option<String>,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub leader: Option<String>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub version: Option<Uuid>,
42}