Skip to main content

nominal_api/conjure/objects/scout/catalog/
external_connection_metadata.rs

1#[derive(
2    Debug,
3    Clone,
4    conjure_object::serde::Serialize,
5    conjure_object::serde::Deserialize,
6    PartialEq,
7    Eq,
8    PartialOrd,
9    Ord,
10    Hash
11)]
12#[serde(crate = "conjure_object::serde")]
13#[conjure_object::private::staged_builder::staged_builder]
14#[builder(crate = conjure_object::private::staged_builder, update, inline)]
15pub struct ExternalConnectionMetadata {
16    #[builder(
17        custom(
18            type = super::super::datasource::connection::api::ConnectionDetails,
19            convert = Box::new
20        )
21    )]
22    #[serde(rename = "connectionDetails")]
23    connection_details: Box<
24        super::super::datasource::connection::api::ConnectionDetails,
25    >,
26    #[builder(
27        custom(
28            type = super::super::datasource::connection::api::ConnectionStatus,
29            convert = Box::new
30        )
31    )]
32    #[serde(rename = "connectionStatus")]
33    connection_status: Box<super::super::datasource::connection::api::ConnectionStatus>,
34    #[builder(
35        default,
36        custom(
37            type = impl
38            Into<Option<super::super::datasource::connection::api::LimitsConfig>>,
39            convert = |v|v.into().map(Box::new)
40        )
41    )]
42    #[serde(rename = "limits", skip_serializing_if = "Option::is_none", default)]
43    limits: Option<Box<super::super::datasource::connection::api::LimitsConfig>>,
44}
45impl ExternalConnectionMetadata {
46    /// Constructs a new instance of the type.
47    #[inline]
48    pub fn new(
49        connection_details: super::super::datasource::connection::api::ConnectionDetails,
50        connection_status: super::super::datasource::connection::api::ConnectionStatus,
51    ) -> Self {
52        Self::builder()
53            .connection_details(connection_details)
54            .connection_status(connection_status)
55            .build()
56    }
57    #[inline]
58    pub fn connection_details(
59        &self,
60    ) -> &super::super::datasource::connection::api::ConnectionDetails {
61        &*self.connection_details
62    }
63    #[inline]
64    pub fn connection_status(
65        &self,
66    ) -> &super::super::datasource::connection::api::ConnectionStatus {
67        &*self.connection_status
68    }
69    #[inline]
70    pub fn limits(
71        &self,
72    ) -> Option<&super::super::datasource::connection::api::LimitsConfig> {
73        self.limits.as_ref().map(|o| &**o)
74    }
75}