nominal_api/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(default, into)]
30 #[serde(
31 rename = "tagKeysFromColumns",
32 skip_serializing_if = "Option::is_none",
33 default
34 )]
35 tag_keys_from_columns: Option<
36 std::collections::BTreeSet<super::super::super::api::TagName>,
37 >,
38 #[builder(default, into)]
39 #[serde(rename = "tagColumns", skip_serializing_if = "Option::is_none", default)]
40 tag_columns: Option<
41 std::collections::BTreeMap<
42 super::super::super::api::TagName,
43 super::super::super::api::ColumnName,
44 >,
45 >,
46 #[builder(default, into)]
47 #[serde(
48 rename = "additionalFileTags",
49 skip_serializing_if = "Option::is_none",
50 default
51 )]
52 additional_file_tags: Option<
53 std::collections::BTreeMap<
54 super::super::super::api::TagName,
55 super::super::super::api::TagValue,
56 >,
57 >,
58 #[builder(default, set(item(type = super::super::super::api::ColumnName)))]
59 #[serde(
60 rename = "excludeColumns",
61 skip_serializing_if = "std::collections::BTreeSet::is_empty",
62 default
63 )]
64 exclude_columns: std::collections::BTreeSet<super::super::super::api::ColumnName>,
65}
66impl CsvOpts {
67 #[inline]
69 pub fn new(
70 source: super::IngestSource,
71 target: super::DatasetIngestTarget,
72 timestamp_metadata: super::TimestampMetadata,
73 ) -> Self {
74 Self::builder()
75 .source(source)
76 .target(target)
77 .timestamp_metadata(timestamp_metadata)
78 .build()
79 }
80 #[inline]
81 pub fn source(&self) -> &super::IngestSource {
82 &*self.source
83 }
84 #[inline]
85 pub fn target(&self) -> &super::DatasetIngestTarget {
86 &*self.target
87 }
88 #[inline]
89 pub fn timestamp_metadata(&self) -> &super::TimestampMetadata {
90 &*self.timestamp_metadata
91 }
92 #[inline]
93 pub fn channel_prefix(&self) -> &super::ChannelPrefix {
94 &self.channel_prefix
95 }
96 #[deprecated(note = "Deprecated in favor of tagColumns.")]
97 #[inline]
98 pub fn tag_keys_from_columns(
99 &self,
100 ) -> Option<&std::collections::BTreeSet<super::super::super::api::TagName>> {
101 self.tag_keys_from_columns.as_ref().map(|o| &*o)
102 }
103 #[inline]
105 pub fn tag_columns(
106 &self,
107 ) -> Option<
108 &std::collections::BTreeMap<
109 super::super::super::api::TagName,
110 super::super::super::api::ColumnName,
111 >,
112 > {
113 self.tag_columns.as_ref().map(|o| &*o)
114 }
115 #[inline]
117 pub fn additional_file_tags(
118 &self,
119 ) -> Option<
120 &std::collections::BTreeMap<
121 super::super::super::api::TagName,
122 super::super::super::api::TagValue,
123 >,
124 > {
125 self.additional_file_tags.as_ref().map(|o| &*o)
126 }
127 #[inline]
131 pub fn exclude_columns(
132 &self,
133 ) -> &std::collections::BTreeSet<super::super::super::api::ColumnName> {
134 &self.exclude_columns
135 }
136}