nominal_api/conjure/objects/scout/catalog/
external_connection_metadata.rs1#[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 #[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}