consulrs 0.1.0

An asynchronous Rust client library for the Hashicorp Consul API.
Documentation
use crate::api::service::common::{AgentServiceConnect, AgentServiceConnectProxy, AgentWeights};
use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use serde_with::skip_serializing_none;
use std::{collections::HashMap, fmt::Debug};

#[skip_serializing_none]
#[derive(Builder, Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
#[builder(setter(into, strip_option), default)]
pub struct CatalogService {
    pub address: Option<String>,
    pub create_index: Option<u64>,
    pub datacenter: Option<String>,
    #[serde(rename = "ID")]
    pub id: Option<String>,
    pub node_meta: Option<HashMap<String, String>>,
    pub modify_index: Option<u64>,
    pub namespace: Option<String>,
    pub node: Option<String>,
    pub service_address: Option<String>,
    pub service_connect: Option<AgentServiceConnect>,
    pub service_enable_tag_override: Option<bool>,
    #[serde(rename = "ServiceID")]
    pub service_id: Option<String>,
    pub service_kind: Option<String>,
    pub service_meta: Option<HashMap<String, String>>,
    pub service_name: Option<String>,
    pub service_port: Option<u64>,
    pub service_proxy: Option<AgentServiceConnectProxy>,
    pub service_socket_path: Option<String>,
    pub service_tags: Option<Vec<String>>,
    pub service_weights: Option<AgentWeights>,
    pub tagged_addresses: Option<HashMap<String, String>>,
}

#[skip_serializing_none]
#[derive(Builder, Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
#[builder(setter(into, strip_option), default)]
pub struct Node {
    pub address: String,
    pub create_index: u64,
    pub datacenter: String,
    #[serde(rename = "ID")]
    pub id: String,
    pub meta: Option<HashMap<String, String>>,
    pub modify_index: u64,
    pub node: String,
    pub tagged_addresses: Option<HashMap<String, String>>,
}