nominal_api_conjure/conjure/objects/ingest/api/
csv_opts.rs1#[derive(
3 Debug,
4 Clone,
5 conjure_object::serde::Serialize,
6 conjure_object::serde::Deserialize,
7 PartialEq,
8 Eq,
9 PartialOrd,
10 Ord,
11 Hash
12)]
13#[serde(crate = "conjure_object::serde")]
14#[conjure_object::private::staged_builder::staged_builder]
15#[builder(crate = conjure_object::private::staged_builder, update, inline)]
16pub struct CsvOpts {
17 #[builder(custom(type = super::IngestSource, convert = Box::new))]
18 #[serde(rename = "source")]
19 source: Box<super::IngestSource>,
20 #[builder(custom(type = super::DatasetIngestTarget, convert = Box::new))]
21 #[serde(rename = "target")]
22 target: Box<super::DatasetIngestTarget>,
23 #[builder(custom(type = super::TimestampMetadata, convert = Box::new))]
24 #[serde(rename = "timestampMetadata")]
25 timestamp_metadata: Box<super::TimestampMetadata>,
26 #[builder(default)]
27 #[serde(rename = "channelPrefix", skip_serializing_if = "Option::is_none", default)]
28 channel_prefix: super::ChannelPrefix,
29 #[builder(
30 default,
31 map(
32 key(type = super::super::super::api::ColumnName),
33 value(type = super::super::super::api::Channel)
34 )
35 )]
36 #[serde(
37 rename = "channelNameOverrides",
38 skip_serializing_if = "std::collections::BTreeMap::is_empty",
39 default
40 )]
41 channel_name_overrides: std::collections::BTreeMap<
42 super::super::super::api::ColumnName,
43 super::super::super::api::Channel,
44 >,
45 #[builder(default, into)]
46 #[serde(
47 rename = "tagKeysFromColumns",
48 skip_serializing_if = "Option::is_none",
49 default
50 )]
51 tag_keys_from_columns: Option<
52 std::collections::BTreeSet<super::super::super::api::TagName>,
53 >,
54 #[builder(default, into)]
55 #[serde(rename = "tagColumns", skip_serializing_if = "Option::is_none", default)]
56 tag_columns: Option<
57 std::collections::BTreeMap<
58 super::super::super::api::TagName,
59 super::super::super::api::ColumnName,
60 >,
61 >,
62 #[builder(default, into)]
63 #[serde(
64 rename = "additionalFileTags",
65 skip_serializing_if = "Option::is_none",
66 default
67 )]
68 additional_file_tags: Option<
69 std::collections::BTreeMap<
70 super::super::super::api::TagName,
71 super::super::super::api::TagValue,
72 >,
73 >,
74 #[builder(default, set(item(type = super::super::super::api::ColumnName)))]
75 #[serde(
76 rename = "excludeColumns",
77 skip_serializing_if = "std::collections::BTreeSet::is_empty",
78 default
79 )]
80 exclude_columns: std::collections::BTreeSet<super::super::super::api::ColumnName>,
81}
82impl CsvOpts {
83 #[inline]
85 pub fn new(
86 source: super::IngestSource,
87 target: super::DatasetIngestTarget,
88 timestamp_metadata: super::TimestampMetadata,
89 ) -> Self {
90 Self::builder()
91 .source(source)
92 .target(target)
93 .timestamp_metadata(timestamp_metadata)
94 .build()
95 }
96 #[inline]
97 pub fn source(&self) -> &super::IngestSource {
98 &*self.source
99 }
100 #[inline]
101 pub fn target(&self) -> &super::DatasetIngestTarget {
102 &*self.target
103 }
104 #[inline]
105 pub fn timestamp_metadata(&self) -> &super::TimestampMetadata {
106 &*self.timestamp_metadata
107 }
108 #[inline]
109 pub fn channel_prefix(&self) -> &super::ChannelPrefix {
110 &self.channel_prefix
111 }
112 #[inline]
113 pub fn channel_name_overrides(
114 &self,
115 ) -> &std::collections::BTreeMap<
116 super::super::super::api::ColumnName,
117 super::super::super::api::Channel,
118 > {
119 &self.channel_name_overrides
120 }
121 #[deprecated(note = "Deprecated in favor of tagColumns.")]
122 #[inline]
123 pub fn tag_keys_from_columns(
124 &self,
125 ) -> Option<&std::collections::BTreeSet<super::super::super::api::TagName>> {
126 self.tag_keys_from_columns.as_ref().map(|o| &*o)
127 }
128 #[inline]
130 pub fn tag_columns(
131 &self,
132 ) -> Option<
133 &std::collections::BTreeMap<
134 super::super::super::api::TagName,
135 super::super::super::api::ColumnName,
136 >,
137 > {
138 self.tag_columns.as_ref().map(|o| &*o)
139 }
140 #[inline]
142 pub fn additional_file_tags(
143 &self,
144 ) -> Option<
145 &std::collections::BTreeMap<
146 super::super::super::api::TagName,
147 super::super::super::api::TagValue,
148 >,
149 > {
150 self.additional_file_tags.as_ref().map(|o| &*o)
151 }
152 #[inline]
156 pub fn exclude_columns(
157 &self,
158 ) -> &std::collections::BTreeSet<super::super::super::api::ColumnName> {
159 &self.exclude_columns
160 }
161}