1#[derive(Debug, Default)]
5pub struct DeliveryStream {
6 properties: DeliveryStreamProperties
7}
8
9#[derive(Debug, Default)]
11pub struct DeliveryStreamProperties {
12 pub delivery_stream_encryption_configuration_input: Option<::Value<self::delivery_stream::DeliveryStreamEncryptionConfigurationInput>>,
17 pub delivery_stream_name: Option<::Value<String>>,
22 pub delivery_stream_type: Option<::Value<String>>,
27 pub elasticsearch_destination_configuration: Option<::Value<self::delivery_stream::ElasticsearchDestinationConfiguration>>,
32 pub extended_s3_destination_configuration: Option<::Value<self::delivery_stream::ExtendedS3DestinationConfiguration>>,
37 pub http_endpoint_destination_configuration: Option<::Value<self::delivery_stream::HttpEndpointDestinationConfiguration>>,
42 pub kinesis_stream_source_configuration: Option<::Value<self::delivery_stream::KinesisStreamSourceConfiguration>>,
47 pub redshift_destination_configuration: Option<::Value<self::delivery_stream::RedshiftDestinationConfiguration>>,
52 pub s3_destination_configuration: Option<::Value<self::delivery_stream::S3DestinationConfiguration>>,
57 pub splunk_destination_configuration: Option<::Value<self::delivery_stream::SplunkDestinationConfiguration>>,
62 pub tags: Option<::ValueList<::Tag>>,
67}
68
69impl ::serde::Serialize for DeliveryStreamProperties {
70 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
71 let mut map = ::serde::Serializer::serialize_map(s, None)?;
72 if let Some(ref delivery_stream_encryption_configuration_input) = self.delivery_stream_encryption_configuration_input {
73 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DeliveryStreamEncryptionConfigurationInput", delivery_stream_encryption_configuration_input)?;
74 }
75 if let Some(ref delivery_stream_name) = self.delivery_stream_name {
76 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DeliveryStreamName", delivery_stream_name)?;
77 }
78 if let Some(ref delivery_stream_type) = self.delivery_stream_type {
79 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DeliveryStreamType", delivery_stream_type)?;
80 }
81 if let Some(ref elasticsearch_destination_configuration) = self.elasticsearch_destination_configuration {
82 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ElasticsearchDestinationConfiguration", elasticsearch_destination_configuration)?;
83 }
84 if let Some(ref extended_s3_destination_configuration) = self.extended_s3_destination_configuration {
85 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ExtendedS3DestinationConfiguration", extended_s3_destination_configuration)?;
86 }
87 if let Some(ref http_endpoint_destination_configuration) = self.http_endpoint_destination_configuration {
88 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HttpEndpointDestinationConfiguration", http_endpoint_destination_configuration)?;
89 }
90 if let Some(ref kinesis_stream_source_configuration) = self.kinesis_stream_source_configuration {
91 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KinesisStreamSourceConfiguration", kinesis_stream_source_configuration)?;
92 }
93 if let Some(ref redshift_destination_configuration) = self.redshift_destination_configuration {
94 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RedshiftDestinationConfiguration", redshift_destination_configuration)?;
95 }
96 if let Some(ref s3_destination_configuration) = self.s3_destination_configuration {
97 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3DestinationConfiguration", s3_destination_configuration)?;
98 }
99 if let Some(ref splunk_destination_configuration) = self.splunk_destination_configuration {
100 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SplunkDestinationConfiguration", splunk_destination_configuration)?;
101 }
102 if let Some(ref tags) = self.tags {
103 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
104 }
105 ::serde::ser::SerializeMap::end(map)
106 }
107}
108
109impl<'de> ::serde::Deserialize<'de> for DeliveryStreamProperties {
110 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<DeliveryStreamProperties, D::Error> {
111 struct Visitor;
112
113 impl<'de> ::serde::de::Visitor<'de> for Visitor {
114 type Value = DeliveryStreamProperties;
115
116 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
117 write!(f, "a struct of type DeliveryStreamProperties")
118 }
119
120 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
121 let mut delivery_stream_encryption_configuration_input: Option<::Value<self::delivery_stream::DeliveryStreamEncryptionConfigurationInput>> = None;
122 let mut delivery_stream_name: Option<::Value<String>> = None;
123 let mut delivery_stream_type: Option<::Value<String>> = None;
124 let mut elasticsearch_destination_configuration: Option<::Value<self::delivery_stream::ElasticsearchDestinationConfiguration>> = None;
125 let mut extended_s3_destination_configuration: Option<::Value<self::delivery_stream::ExtendedS3DestinationConfiguration>> = None;
126 let mut http_endpoint_destination_configuration: Option<::Value<self::delivery_stream::HttpEndpointDestinationConfiguration>> = None;
127 let mut kinesis_stream_source_configuration: Option<::Value<self::delivery_stream::KinesisStreamSourceConfiguration>> = None;
128 let mut redshift_destination_configuration: Option<::Value<self::delivery_stream::RedshiftDestinationConfiguration>> = None;
129 let mut s3_destination_configuration: Option<::Value<self::delivery_stream::S3DestinationConfiguration>> = None;
130 let mut splunk_destination_configuration: Option<::Value<self::delivery_stream::SplunkDestinationConfiguration>> = None;
131 let mut tags: Option<::ValueList<::Tag>> = None;
132
133 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
134 match __cfn_key.as_ref() {
135 "DeliveryStreamEncryptionConfigurationInput" => {
136 delivery_stream_encryption_configuration_input = ::serde::de::MapAccess::next_value(&mut map)?;
137 }
138 "DeliveryStreamName" => {
139 delivery_stream_name = ::serde::de::MapAccess::next_value(&mut map)?;
140 }
141 "DeliveryStreamType" => {
142 delivery_stream_type = ::serde::de::MapAccess::next_value(&mut map)?;
143 }
144 "ElasticsearchDestinationConfiguration" => {
145 elasticsearch_destination_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
146 }
147 "ExtendedS3DestinationConfiguration" => {
148 extended_s3_destination_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
149 }
150 "HttpEndpointDestinationConfiguration" => {
151 http_endpoint_destination_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
152 }
153 "KinesisStreamSourceConfiguration" => {
154 kinesis_stream_source_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
155 }
156 "RedshiftDestinationConfiguration" => {
157 redshift_destination_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
158 }
159 "S3DestinationConfiguration" => {
160 s3_destination_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
161 }
162 "SplunkDestinationConfiguration" => {
163 splunk_destination_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
164 }
165 "Tags" => {
166 tags = ::serde::de::MapAccess::next_value(&mut map)?;
167 }
168 _ => {}
169 }
170 }
171
172 Ok(DeliveryStreamProperties {
173 delivery_stream_encryption_configuration_input: delivery_stream_encryption_configuration_input,
174 delivery_stream_name: delivery_stream_name,
175 delivery_stream_type: delivery_stream_type,
176 elasticsearch_destination_configuration: elasticsearch_destination_configuration,
177 extended_s3_destination_configuration: extended_s3_destination_configuration,
178 http_endpoint_destination_configuration: http_endpoint_destination_configuration,
179 kinesis_stream_source_configuration: kinesis_stream_source_configuration,
180 redshift_destination_configuration: redshift_destination_configuration,
181 s3_destination_configuration: s3_destination_configuration,
182 splunk_destination_configuration: splunk_destination_configuration,
183 tags: tags,
184 })
185 }
186 }
187
188 d.deserialize_map(Visitor)
189 }
190}
191
192impl ::Resource for DeliveryStream {
193 type Properties = DeliveryStreamProperties;
194 const TYPE: &'static str = "AWS::KinesisFirehose::DeliveryStream";
195 fn properties(&self) -> &DeliveryStreamProperties {
196 &self.properties
197 }
198 fn properties_mut(&mut self) -> &mut DeliveryStreamProperties {
199 &mut self.properties
200 }
201}
202
203impl ::private::Sealed for DeliveryStream {}
204
205impl From<DeliveryStreamProperties> for DeliveryStream {
206 fn from(properties: DeliveryStreamProperties) -> DeliveryStream {
207 DeliveryStream { properties }
208 }
209}
210
211pub mod delivery_stream {
212 #[derive(Debug, Default)]
216 pub struct BufferingHints {
217 pub interval_in_seconds: Option<::Value<u32>>,
222 pub size_in_m_bs: Option<::Value<u32>>,
227 }
228
229 impl ::codec::SerializeValue for BufferingHints {
230 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
231 let mut map = ::serde::Serializer::serialize_map(s, None)?;
232 if let Some(ref interval_in_seconds) = self.interval_in_seconds {
233 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IntervalInSeconds", interval_in_seconds)?;
234 }
235 if let Some(ref size_in_m_bs) = self.size_in_m_bs {
236 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SizeInMBs", size_in_m_bs)?;
237 }
238 ::serde::ser::SerializeMap::end(map)
239 }
240 }
241
242 impl ::codec::DeserializeValue for BufferingHints {
243 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<BufferingHints, D::Error> {
244 struct Visitor;
245
246 impl<'de> ::serde::de::Visitor<'de> for Visitor {
247 type Value = BufferingHints;
248
249 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
250 write!(f, "a struct of type BufferingHints")
251 }
252
253 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
254 let mut interval_in_seconds: Option<::Value<u32>> = None;
255 let mut size_in_m_bs: Option<::Value<u32>> = None;
256
257 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
258 match __cfn_key.as_ref() {
259 "IntervalInSeconds" => {
260 interval_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
261 }
262 "SizeInMBs" => {
263 size_in_m_bs = ::serde::de::MapAccess::next_value(&mut map)?;
264 }
265 _ => {}
266 }
267 }
268
269 Ok(BufferingHints {
270 interval_in_seconds: interval_in_seconds,
271 size_in_m_bs: size_in_m_bs,
272 })
273 }
274 }
275
276 d.deserialize_map(Visitor)
277 }
278 }
279
280 #[derive(Debug, Default)]
282 pub struct CloudWatchLoggingOptions {
283 pub enabled: Option<::Value<bool>>,
288 pub log_group_name: Option<::Value<String>>,
293 pub log_stream_name: Option<::Value<String>>,
298 }
299
300 impl ::codec::SerializeValue for CloudWatchLoggingOptions {
301 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
302 let mut map = ::serde::Serializer::serialize_map(s, None)?;
303 if let Some(ref enabled) = self.enabled {
304 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Enabled", enabled)?;
305 }
306 if let Some(ref log_group_name) = self.log_group_name {
307 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogGroupName", log_group_name)?;
308 }
309 if let Some(ref log_stream_name) = self.log_stream_name {
310 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogStreamName", log_stream_name)?;
311 }
312 ::serde::ser::SerializeMap::end(map)
313 }
314 }
315
316 impl ::codec::DeserializeValue for CloudWatchLoggingOptions {
317 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<CloudWatchLoggingOptions, D::Error> {
318 struct Visitor;
319
320 impl<'de> ::serde::de::Visitor<'de> for Visitor {
321 type Value = CloudWatchLoggingOptions;
322
323 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
324 write!(f, "a struct of type CloudWatchLoggingOptions")
325 }
326
327 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
328 let mut enabled: Option<::Value<bool>> = None;
329 let mut log_group_name: Option<::Value<String>> = None;
330 let mut log_stream_name: Option<::Value<String>> = None;
331
332 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
333 match __cfn_key.as_ref() {
334 "Enabled" => {
335 enabled = ::serde::de::MapAccess::next_value(&mut map)?;
336 }
337 "LogGroupName" => {
338 log_group_name = ::serde::de::MapAccess::next_value(&mut map)?;
339 }
340 "LogStreamName" => {
341 log_stream_name = ::serde::de::MapAccess::next_value(&mut map)?;
342 }
343 _ => {}
344 }
345 }
346
347 Ok(CloudWatchLoggingOptions {
348 enabled: enabled,
349 log_group_name: log_group_name,
350 log_stream_name: log_stream_name,
351 })
352 }
353 }
354
355 d.deserialize_map(Visitor)
356 }
357 }
358
359 #[derive(Debug, Default)]
361 pub struct CopyCommand {
362 pub copy_options: Option<::Value<String>>,
367 pub data_table_columns: Option<::Value<String>>,
372 pub data_table_name: ::Value<String>,
377 }
378
379 impl ::codec::SerializeValue for CopyCommand {
380 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
381 let mut map = ::serde::Serializer::serialize_map(s, None)?;
382 if let Some(ref copy_options) = self.copy_options {
383 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CopyOptions", copy_options)?;
384 }
385 if let Some(ref data_table_columns) = self.data_table_columns {
386 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DataTableColumns", data_table_columns)?;
387 }
388 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DataTableName", &self.data_table_name)?;
389 ::serde::ser::SerializeMap::end(map)
390 }
391 }
392
393 impl ::codec::DeserializeValue for CopyCommand {
394 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<CopyCommand, D::Error> {
395 struct Visitor;
396
397 impl<'de> ::serde::de::Visitor<'de> for Visitor {
398 type Value = CopyCommand;
399
400 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
401 write!(f, "a struct of type CopyCommand")
402 }
403
404 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
405 let mut copy_options: Option<::Value<String>> = None;
406 let mut data_table_columns: Option<::Value<String>> = None;
407 let mut data_table_name: Option<::Value<String>> = None;
408
409 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
410 match __cfn_key.as_ref() {
411 "CopyOptions" => {
412 copy_options = ::serde::de::MapAccess::next_value(&mut map)?;
413 }
414 "DataTableColumns" => {
415 data_table_columns = ::serde::de::MapAccess::next_value(&mut map)?;
416 }
417 "DataTableName" => {
418 data_table_name = ::serde::de::MapAccess::next_value(&mut map)?;
419 }
420 _ => {}
421 }
422 }
423
424 Ok(CopyCommand {
425 copy_options: copy_options,
426 data_table_columns: data_table_columns,
427 data_table_name: data_table_name.ok_or(::serde::de::Error::missing_field("DataTableName"))?,
428 })
429 }
430 }
431
432 d.deserialize_map(Visitor)
433 }
434 }
435
436 #[derive(Debug, Default)]
438 pub struct DataFormatConversionConfiguration {
439 pub enabled: Option<::Value<bool>>,
444 pub input_format_configuration: Option<::Value<InputFormatConfiguration>>,
449 pub output_format_configuration: Option<::Value<OutputFormatConfiguration>>,
454 pub schema_configuration: Option<::Value<SchemaConfiguration>>,
459 }
460
461 impl ::codec::SerializeValue for DataFormatConversionConfiguration {
462 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
463 let mut map = ::serde::Serializer::serialize_map(s, None)?;
464 if let Some(ref enabled) = self.enabled {
465 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Enabled", enabled)?;
466 }
467 if let Some(ref input_format_configuration) = self.input_format_configuration {
468 ::serde::ser::SerializeMap::serialize_entry(&mut map, "InputFormatConfiguration", input_format_configuration)?;
469 }
470 if let Some(ref output_format_configuration) = self.output_format_configuration {
471 ::serde::ser::SerializeMap::serialize_entry(&mut map, "OutputFormatConfiguration", output_format_configuration)?;
472 }
473 if let Some(ref schema_configuration) = self.schema_configuration {
474 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SchemaConfiguration", schema_configuration)?;
475 }
476 ::serde::ser::SerializeMap::end(map)
477 }
478 }
479
480 impl ::codec::DeserializeValue for DataFormatConversionConfiguration {
481 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DataFormatConversionConfiguration, D::Error> {
482 struct Visitor;
483
484 impl<'de> ::serde::de::Visitor<'de> for Visitor {
485 type Value = DataFormatConversionConfiguration;
486
487 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
488 write!(f, "a struct of type DataFormatConversionConfiguration")
489 }
490
491 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
492 let mut enabled: Option<::Value<bool>> = None;
493 let mut input_format_configuration: Option<::Value<InputFormatConfiguration>> = None;
494 let mut output_format_configuration: Option<::Value<OutputFormatConfiguration>> = None;
495 let mut schema_configuration: Option<::Value<SchemaConfiguration>> = None;
496
497 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
498 match __cfn_key.as_ref() {
499 "Enabled" => {
500 enabled = ::serde::de::MapAccess::next_value(&mut map)?;
501 }
502 "InputFormatConfiguration" => {
503 input_format_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
504 }
505 "OutputFormatConfiguration" => {
506 output_format_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
507 }
508 "SchemaConfiguration" => {
509 schema_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
510 }
511 _ => {}
512 }
513 }
514
515 Ok(DataFormatConversionConfiguration {
516 enabled: enabled,
517 input_format_configuration: input_format_configuration,
518 output_format_configuration: output_format_configuration,
519 schema_configuration: schema_configuration,
520 })
521 }
522 }
523
524 d.deserialize_map(Visitor)
525 }
526 }
527
528 #[derive(Debug, Default)]
530 pub struct DeliveryStreamEncryptionConfigurationInput {
531 pub key_arn: Option<::Value<String>>,
536 pub key_type: ::Value<String>,
541 }
542
543 impl ::codec::SerializeValue for DeliveryStreamEncryptionConfigurationInput {
544 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
545 let mut map = ::serde::Serializer::serialize_map(s, None)?;
546 if let Some(ref key_arn) = self.key_arn {
547 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KeyARN", key_arn)?;
548 }
549 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KeyType", &self.key_type)?;
550 ::serde::ser::SerializeMap::end(map)
551 }
552 }
553
554 impl ::codec::DeserializeValue for DeliveryStreamEncryptionConfigurationInput {
555 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DeliveryStreamEncryptionConfigurationInput, D::Error> {
556 struct Visitor;
557
558 impl<'de> ::serde::de::Visitor<'de> for Visitor {
559 type Value = DeliveryStreamEncryptionConfigurationInput;
560
561 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
562 write!(f, "a struct of type DeliveryStreamEncryptionConfigurationInput")
563 }
564
565 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
566 let mut key_arn: Option<::Value<String>> = None;
567 let mut key_type: Option<::Value<String>> = None;
568
569 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
570 match __cfn_key.as_ref() {
571 "KeyARN" => {
572 key_arn = ::serde::de::MapAccess::next_value(&mut map)?;
573 }
574 "KeyType" => {
575 key_type = ::serde::de::MapAccess::next_value(&mut map)?;
576 }
577 _ => {}
578 }
579 }
580
581 Ok(DeliveryStreamEncryptionConfigurationInput {
582 key_arn: key_arn,
583 key_type: key_type.ok_or(::serde::de::Error::missing_field("KeyType"))?,
584 })
585 }
586 }
587
588 d.deserialize_map(Visitor)
589 }
590 }
591
592 #[derive(Debug, Default)]
594 pub struct Deserializer {
595 pub hive_json_ser_de: Option<::Value<HiveJsonSerDe>>,
600 pub open_x_json_ser_de: Option<::Value<OpenXJsonSerDe>>,
605 }
606
607 impl ::codec::SerializeValue for Deserializer {
608 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
609 let mut map = ::serde::Serializer::serialize_map(s, None)?;
610 if let Some(ref hive_json_ser_de) = self.hive_json_ser_de {
611 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HiveJsonSerDe", hive_json_ser_de)?;
612 }
613 if let Some(ref open_x_json_ser_de) = self.open_x_json_ser_de {
614 ::serde::ser::SerializeMap::serialize_entry(&mut map, "OpenXJsonSerDe", open_x_json_ser_de)?;
615 }
616 ::serde::ser::SerializeMap::end(map)
617 }
618 }
619
620 impl ::codec::DeserializeValue for Deserializer {
621 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<Deserializer, D::Error> {
622 struct Visitor;
623
624 impl<'de> ::serde::de::Visitor<'de> for Visitor {
625 type Value = Deserializer;
626
627 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
628 write!(f, "a struct of type Deserializer")
629 }
630
631 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
632 let mut hive_json_ser_de: Option<::Value<HiveJsonSerDe>> = None;
633 let mut open_x_json_ser_de: Option<::Value<OpenXJsonSerDe>> = None;
634
635 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
636 match __cfn_key.as_ref() {
637 "HiveJsonSerDe" => {
638 hive_json_ser_de = ::serde::de::MapAccess::next_value(&mut map)?;
639 }
640 "OpenXJsonSerDe" => {
641 open_x_json_ser_de = ::serde::de::MapAccess::next_value(&mut map)?;
642 }
643 _ => {}
644 }
645 }
646
647 Ok(Deserializer {
648 hive_json_ser_de: hive_json_ser_de,
649 open_x_json_ser_de: open_x_json_ser_de,
650 })
651 }
652 }
653
654 d.deserialize_map(Visitor)
655 }
656 }
657
658 #[derive(Debug, Default)]
660 pub struct ElasticsearchBufferingHints {
661 pub interval_in_seconds: Option<::Value<u32>>,
666 pub size_in_m_bs: Option<::Value<u32>>,
671 }
672
673 impl ::codec::SerializeValue for ElasticsearchBufferingHints {
674 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
675 let mut map = ::serde::Serializer::serialize_map(s, None)?;
676 if let Some(ref interval_in_seconds) = self.interval_in_seconds {
677 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IntervalInSeconds", interval_in_seconds)?;
678 }
679 if let Some(ref size_in_m_bs) = self.size_in_m_bs {
680 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SizeInMBs", size_in_m_bs)?;
681 }
682 ::serde::ser::SerializeMap::end(map)
683 }
684 }
685
686 impl ::codec::DeserializeValue for ElasticsearchBufferingHints {
687 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ElasticsearchBufferingHints, D::Error> {
688 struct Visitor;
689
690 impl<'de> ::serde::de::Visitor<'de> for Visitor {
691 type Value = ElasticsearchBufferingHints;
692
693 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
694 write!(f, "a struct of type ElasticsearchBufferingHints")
695 }
696
697 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
698 let mut interval_in_seconds: Option<::Value<u32>> = None;
699 let mut size_in_m_bs: Option<::Value<u32>> = None;
700
701 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
702 match __cfn_key.as_ref() {
703 "IntervalInSeconds" => {
704 interval_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
705 }
706 "SizeInMBs" => {
707 size_in_m_bs = ::serde::de::MapAccess::next_value(&mut map)?;
708 }
709 _ => {}
710 }
711 }
712
713 Ok(ElasticsearchBufferingHints {
714 interval_in_seconds: interval_in_seconds,
715 size_in_m_bs: size_in_m_bs,
716 })
717 }
718 }
719
720 d.deserialize_map(Visitor)
721 }
722 }
723
724 #[derive(Debug, Default)]
726 pub struct ElasticsearchDestinationConfiguration {
727 pub buffering_hints: Option<::Value<ElasticsearchBufferingHints>>,
732 pub cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>>,
737 pub cluster_endpoint: Option<::Value<String>>,
742 pub domain_arn: Option<::Value<String>>,
747 pub index_name: ::Value<String>,
752 pub index_rotation_period: Option<::Value<String>>,
757 pub processing_configuration: Option<::Value<ProcessingConfiguration>>,
762 pub retry_options: Option<::Value<ElasticsearchRetryOptions>>,
767 pub role_arn: ::Value<String>,
772 pub s3_backup_mode: Option<::Value<String>>,
777 pub s3_configuration: ::Value<S3DestinationConfiguration>,
782 pub type_name: Option<::Value<String>>,
787 pub vpc_configuration: Option<::Value<VpcConfiguration>>,
792 }
793
794 impl ::codec::SerializeValue for ElasticsearchDestinationConfiguration {
795 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
796 let mut map = ::serde::Serializer::serialize_map(s, None)?;
797 if let Some(ref buffering_hints) = self.buffering_hints {
798 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BufferingHints", buffering_hints)?;
799 }
800 if let Some(ref cloud_watch_logging_options) = self.cloud_watch_logging_options {
801 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CloudWatchLoggingOptions", cloud_watch_logging_options)?;
802 }
803 if let Some(ref cluster_endpoint) = self.cluster_endpoint {
804 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ClusterEndpoint", cluster_endpoint)?;
805 }
806 if let Some(ref domain_arn) = self.domain_arn {
807 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DomainARN", domain_arn)?;
808 }
809 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IndexName", &self.index_name)?;
810 if let Some(ref index_rotation_period) = self.index_rotation_period {
811 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IndexRotationPeriod", index_rotation_period)?;
812 }
813 if let Some(ref processing_configuration) = self.processing_configuration {
814 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProcessingConfiguration", processing_configuration)?;
815 }
816 if let Some(ref retry_options) = self.retry_options {
817 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RetryOptions", retry_options)?;
818 }
819 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", &self.role_arn)?;
820 if let Some(ref s3_backup_mode) = self.s3_backup_mode {
821 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupMode", s3_backup_mode)?;
822 }
823 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3Configuration", &self.s3_configuration)?;
824 if let Some(ref type_name) = self.type_name {
825 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TypeName", type_name)?;
826 }
827 if let Some(ref vpc_configuration) = self.vpc_configuration {
828 ::serde::ser::SerializeMap::serialize_entry(&mut map, "VpcConfiguration", vpc_configuration)?;
829 }
830 ::serde::ser::SerializeMap::end(map)
831 }
832 }
833
834 impl ::codec::DeserializeValue for ElasticsearchDestinationConfiguration {
835 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ElasticsearchDestinationConfiguration, D::Error> {
836 struct Visitor;
837
838 impl<'de> ::serde::de::Visitor<'de> for Visitor {
839 type Value = ElasticsearchDestinationConfiguration;
840
841 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
842 write!(f, "a struct of type ElasticsearchDestinationConfiguration")
843 }
844
845 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
846 let mut buffering_hints: Option<::Value<ElasticsearchBufferingHints>> = None;
847 let mut cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>> = None;
848 let mut cluster_endpoint: Option<::Value<String>> = None;
849 let mut domain_arn: Option<::Value<String>> = None;
850 let mut index_name: Option<::Value<String>> = None;
851 let mut index_rotation_period: Option<::Value<String>> = None;
852 let mut processing_configuration: Option<::Value<ProcessingConfiguration>> = None;
853 let mut retry_options: Option<::Value<ElasticsearchRetryOptions>> = None;
854 let mut role_arn: Option<::Value<String>> = None;
855 let mut s3_backup_mode: Option<::Value<String>> = None;
856 let mut s3_configuration: Option<::Value<S3DestinationConfiguration>> = None;
857 let mut type_name: Option<::Value<String>> = None;
858 let mut vpc_configuration: Option<::Value<VpcConfiguration>> = None;
859
860 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
861 match __cfn_key.as_ref() {
862 "BufferingHints" => {
863 buffering_hints = ::serde::de::MapAccess::next_value(&mut map)?;
864 }
865 "CloudWatchLoggingOptions" => {
866 cloud_watch_logging_options = ::serde::de::MapAccess::next_value(&mut map)?;
867 }
868 "ClusterEndpoint" => {
869 cluster_endpoint = ::serde::de::MapAccess::next_value(&mut map)?;
870 }
871 "DomainARN" => {
872 domain_arn = ::serde::de::MapAccess::next_value(&mut map)?;
873 }
874 "IndexName" => {
875 index_name = ::serde::de::MapAccess::next_value(&mut map)?;
876 }
877 "IndexRotationPeriod" => {
878 index_rotation_period = ::serde::de::MapAccess::next_value(&mut map)?;
879 }
880 "ProcessingConfiguration" => {
881 processing_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
882 }
883 "RetryOptions" => {
884 retry_options = ::serde::de::MapAccess::next_value(&mut map)?;
885 }
886 "RoleARN" => {
887 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
888 }
889 "S3BackupMode" => {
890 s3_backup_mode = ::serde::de::MapAccess::next_value(&mut map)?;
891 }
892 "S3Configuration" => {
893 s3_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
894 }
895 "TypeName" => {
896 type_name = ::serde::de::MapAccess::next_value(&mut map)?;
897 }
898 "VpcConfiguration" => {
899 vpc_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
900 }
901 _ => {}
902 }
903 }
904
905 Ok(ElasticsearchDestinationConfiguration {
906 buffering_hints: buffering_hints,
907 cloud_watch_logging_options: cloud_watch_logging_options,
908 cluster_endpoint: cluster_endpoint,
909 domain_arn: domain_arn,
910 index_name: index_name.ok_or(::serde::de::Error::missing_field("IndexName"))?,
911 index_rotation_period: index_rotation_period,
912 processing_configuration: processing_configuration,
913 retry_options: retry_options,
914 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleARN"))?,
915 s3_backup_mode: s3_backup_mode,
916 s3_configuration: s3_configuration.ok_or(::serde::de::Error::missing_field("S3Configuration"))?,
917 type_name: type_name,
918 vpc_configuration: vpc_configuration,
919 })
920 }
921 }
922
923 d.deserialize_map(Visitor)
924 }
925 }
926
927 #[derive(Debug, Default)]
929 pub struct ElasticsearchRetryOptions {
930 pub duration_in_seconds: Option<::Value<u32>>,
935 }
936
937 impl ::codec::SerializeValue for ElasticsearchRetryOptions {
938 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
939 let mut map = ::serde::Serializer::serialize_map(s, None)?;
940 if let Some(ref duration_in_seconds) = self.duration_in_seconds {
941 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DurationInSeconds", duration_in_seconds)?;
942 }
943 ::serde::ser::SerializeMap::end(map)
944 }
945 }
946
947 impl ::codec::DeserializeValue for ElasticsearchRetryOptions {
948 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ElasticsearchRetryOptions, D::Error> {
949 struct Visitor;
950
951 impl<'de> ::serde::de::Visitor<'de> for Visitor {
952 type Value = ElasticsearchRetryOptions;
953
954 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
955 write!(f, "a struct of type ElasticsearchRetryOptions")
956 }
957
958 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
959 let mut duration_in_seconds: Option<::Value<u32>> = None;
960
961 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
962 match __cfn_key.as_ref() {
963 "DurationInSeconds" => {
964 duration_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
965 }
966 _ => {}
967 }
968 }
969
970 Ok(ElasticsearchRetryOptions {
971 duration_in_seconds: duration_in_seconds,
972 })
973 }
974 }
975
976 d.deserialize_map(Visitor)
977 }
978 }
979
980 #[derive(Debug, Default)]
982 pub struct EncryptionConfiguration {
983 pub kms_encryption_config: Option<::Value<KMSEncryptionConfig>>,
988 pub no_encryption_config: Option<::Value<String>>,
993 }
994
995 impl ::codec::SerializeValue for EncryptionConfiguration {
996 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
997 let mut map = ::serde::Serializer::serialize_map(s, None)?;
998 if let Some(ref kms_encryption_config) = self.kms_encryption_config {
999 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KMSEncryptionConfig", kms_encryption_config)?;
1000 }
1001 if let Some(ref no_encryption_config) = self.no_encryption_config {
1002 ::serde::ser::SerializeMap::serialize_entry(&mut map, "NoEncryptionConfig", no_encryption_config)?;
1003 }
1004 ::serde::ser::SerializeMap::end(map)
1005 }
1006 }
1007
1008 impl ::codec::DeserializeValue for EncryptionConfiguration {
1009 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<EncryptionConfiguration, D::Error> {
1010 struct Visitor;
1011
1012 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1013 type Value = EncryptionConfiguration;
1014
1015 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1016 write!(f, "a struct of type EncryptionConfiguration")
1017 }
1018
1019 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1020 let mut kms_encryption_config: Option<::Value<KMSEncryptionConfig>> = None;
1021 let mut no_encryption_config: Option<::Value<String>> = None;
1022
1023 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1024 match __cfn_key.as_ref() {
1025 "KMSEncryptionConfig" => {
1026 kms_encryption_config = ::serde::de::MapAccess::next_value(&mut map)?;
1027 }
1028 "NoEncryptionConfig" => {
1029 no_encryption_config = ::serde::de::MapAccess::next_value(&mut map)?;
1030 }
1031 _ => {}
1032 }
1033 }
1034
1035 Ok(EncryptionConfiguration {
1036 kms_encryption_config: kms_encryption_config,
1037 no_encryption_config: no_encryption_config,
1038 })
1039 }
1040 }
1041
1042 d.deserialize_map(Visitor)
1043 }
1044 }
1045
1046 #[derive(Debug, Default)]
1048 pub struct ExtendedS3DestinationConfiguration {
1049 pub bucket_arn: ::Value<String>,
1054 pub buffering_hints: Option<::Value<BufferingHints>>,
1059 pub cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>>,
1064 pub compression_format: Option<::Value<String>>,
1069 pub data_format_conversion_configuration: Option<::Value<DataFormatConversionConfiguration>>,
1074 pub encryption_configuration: Option<::Value<EncryptionConfiguration>>,
1079 pub error_output_prefix: Option<::Value<String>>,
1084 pub prefix: Option<::Value<String>>,
1089 pub processing_configuration: Option<::Value<ProcessingConfiguration>>,
1094 pub role_arn: ::Value<String>,
1099 pub s3_backup_configuration: Option<::Value<S3DestinationConfiguration>>,
1104 pub s3_backup_mode: Option<::Value<String>>,
1109 }
1110
1111 impl ::codec::SerializeValue for ExtendedS3DestinationConfiguration {
1112 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1113 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1114 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BucketARN", &self.bucket_arn)?;
1115 if let Some(ref buffering_hints) = self.buffering_hints {
1116 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BufferingHints", buffering_hints)?;
1117 }
1118 if let Some(ref cloud_watch_logging_options) = self.cloud_watch_logging_options {
1119 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CloudWatchLoggingOptions", cloud_watch_logging_options)?;
1120 }
1121 if let Some(ref compression_format) = self.compression_format {
1122 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CompressionFormat", compression_format)?;
1123 }
1124 if let Some(ref data_format_conversion_configuration) = self.data_format_conversion_configuration {
1125 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DataFormatConversionConfiguration", data_format_conversion_configuration)?;
1126 }
1127 if let Some(ref encryption_configuration) = self.encryption_configuration {
1128 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EncryptionConfiguration", encryption_configuration)?;
1129 }
1130 if let Some(ref error_output_prefix) = self.error_output_prefix {
1131 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ErrorOutputPrefix", error_output_prefix)?;
1132 }
1133 if let Some(ref prefix) = self.prefix {
1134 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Prefix", prefix)?;
1135 }
1136 if let Some(ref processing_configuration) = self.processing_configuration {
1137 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProcessingConfiguration", processing_configuration)?;
1138 }
1139 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", &self.role_arn)?;
1140 if let Some(ref s3_backup_configuration) = self.s3_backup_configuration {
1141 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupConfiguration", s3_backup_configuration)?;
1142 }
1143 if let Some(ref s3_backup_mode) = self.s3_backup_mode {
1144 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupMode", s3_backup_mode)?;
1145 }
1146 ::serde::ser::SerializeMap::end(map)
1147 }
1148 }
1149
1150 impl ::codec::DeserializeValue for ExtendedS3DestinationConfiguration {
1151 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ExtendedS3DestinationConfiguration, D::Error> {
1152 struct Visitor;
1153
1154 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1155 type Value = ExtendedS3DestinationConfiguration;
1156
1157 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1158 write!(f, "a struct of type ExtendedS3DestinationConfiguration")
1159 }
1160
1161 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1162 let mut bucket_arn: Option<::Value<String>> = None;
1163 let mut buffering_hints: Option<::Value<BufferingHints>> = None;
1164 let mut cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>> = None;
1165 let mut compression_format: Option<::Value<String>> = None;
1166 let mut data_format_conversion_configuration: Option<::Value<DataFormatConversionConfiguration>> = None;
1167 let mut encryption_configuration: Option<::Value<EncryptionConfiguration>> = None;
1168 let mut error_output_prefix: Option<::Value<String>> = None;
1169 let mut prefix: Option<::Value<String>> = None;
1170 let mut processing_configuration: Option<::Value<ProcessingConfiguration>> = None;
1171 let mut role_arn: Option<::Value<String>> = None;
1172 let mut s3_backup_configuration: Option<::Value<S3DestinationConfiguration>> = None;
1173 let mut s3_backup_mode: Option<::Value<String>> = None;
1174
1175 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1176 match __cfn_key.as_ref() {
1177 "BucketARN" => {
1178 bucket_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1179 }
1180 "BufferingHints" => {
1181 buffering_hints = ::serde::de::MapAccess::next_value(&mut map)?;
1182 }
1183 "CloudWatchLoggingOptions" => {
1184 cloud_watch_logging_options = ::serde::de::MapAccess::next_value(&mut map)?;
1185 }
1186 "CompressionFormat" => {
1187 compression_format = ::serde::de::MapAccess::next_value(&mut map)?;
1188 }
1189 "DataFormatConversionConfiguration" => {
1190 data_format_conversion_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1191 }
1192 "EncryptionConfiguration" => {
1193 encryption_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1194 }
1195 "ErrorOutputPrefix" => {
1196 error_output_prefix = ::serde::de::MapAccess::next_value(&mut map)?;
1197 }
1198 "Prefix" => {
1199 prefix = ::serde::de::MapAccess::next_value(&mut map)?;
1200 }
1201 "ProcessingConfiguration" => {
1202 processing_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1203 }
1204 "RoleARN" => {
1205 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1206 }
1207 "S3BackupConfiguration" => {
1208 s3_backup_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1209 }
1210 "S3BackupMode" => {
1211 s3_backup_mode = ::serde::de::MapAccess::next_value(&mut map)?;
1212 }
1213 _ => {}
1214 }
1215 }
1216
1217 Ok(ExtendedS3DestinationConfiguration {
1218 bucket_arn: bucket_arn.ok_or(::serde::de::Error::missing_field("BucketARN"))?,
1219 buffering_hints: buffering_hints,
1220 cloud_watch_logging_options: cloud_watch_logging_options,
1221 compression_format: compression_format,
1222 data_format_conversion_configuration: data_format_conversion_configuration,
1223 encryption_configuration: encryption_configuration,
1224 error_output_prefix: error_output_prefix,
1225 prefix: prefix,
1226 processing_configuration: processing_configuration,
1227 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleARN"))?,
1228 s3_backup_configuration: s3_backup_configuration,
1229 s3_backup_mode: s3_backup_mode,
1230 })
1231 }
1232 }
1233
1234 d.deserialize_map(Visitor)
1235 }
1236 }
1237
1238 #[derive(Debug, Default)]
1240 pub struct HiveJsonSerDe {
1241 pub timestamp_formats: Option<::ValueList<String>>,
1246 }
1247
1248 impl ::codec::SerializeValue for HiveJsonSerDe {
1249 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1250 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1251 if let Some(ref timestamp_formats) = self.timestamp_formats {
1252 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TimestampFormats", timestamp_formats)?;
1253 }
1254 ::serde::ser::SerializeMap::end(map)
1255 }
1256 }
1257
1258 impl ::codec::DeserializeValue for HiveJsonSerDe {
1259 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HiveJsonSerDe, D::Error> {
1260 struct Visitor;
1261
1262 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1263 type Value = HiveJsonSerDe;
1264
1265 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1266 write!(f, "a struct of type HiveJsonSerDe")
1267 }
1268
1269 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1270 let mut timestamp_formats: Option<::ValueList<String>> = None;
1271
1272 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1273 match __cfn_key.as_ref() {
1274 "TimestampFormats" => {
1275 timestamp_formats = ::serde::de::MapAccess::next_value(&mut map)?;
1276 }
1277 _ => {}
1278 }
1279 }
1280
1281 Ok(HiveJsonSerDe {
1282 timestamp_formats: timestamp_formats,
1283 })
1284 }
1285 }
1286
1287 d.deserialize_map(Visitor)
1288 }
1289 }
1290
1291 #[derive(Debug, Default)]
1293 pub struct HttpEndpointCommonAttribute {
1294 pub attribute_name: ::Value<String>,
1299 pub attribute_value: ::Value<String>,
1304 }
1305
1306 impl ::codec::SerializeValue for HttpEndpointCommonAttribute {
1307 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1308 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1309 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AttributeName", &self.attribute_name)?;
1310 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AttributeValue", &self.attribute_value)?;
1311 ::serde::ser::SerializeMap::end(map)
1312 }
1313 }
1314
1315 impl ::codec::DeserializeValue for HttpEndpointCommonAttribute {
1316 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HttpEndpointCommonAttribute, D::Error> {
1317 struct Visitor;
1318
1319 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1320 type Value = HttpEndpointCommonAttribute;
1321
1322 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1323 write!(f, "a struct of type HttpEndpointCommonAttribute")
1324 }
1325
1326 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1327 let mut attribute_name: Option<::Value<String>> = None;
1328 let mut attribute_value: Option<::Value<String>> = None;
1329
1330 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1331 match __cfn_key.as_ref() {
1332 "AttributeName" => {
1333 attribute_name = ::serde::de::MapAccess::next_value(&mut map)?;
1334 }
1335 "AttributeValue" => {
1336 attribute_value = ::serde::de::MapAccess::next_value(&mut map)?;
1337 }
1338 _ => {}
1339 }
1340 }
1341
1342 Ok(HttpEndpointCommonAttribute {
1343 attribute_name: attribute_name.ok_or(::serde::de::Error::missing_field("AttributeName"))?,
1344 attribute_value: attribute_value.ok_or(::serde::de::Error::missing_field("AttributeValue"))?,
1345 })
1346 }
1347 }
1348
1349 d.deserialize_map(Visitor)
1350 }
1351 }
1352
1353 #[derive(Debug, Default)]
1355 pub struct HttpEndpointConfiguration {
1356 pub access_key: Option<::Value<String>>,
1361 pub name: Option<::Value<String>>,
1366 pub url: ::Value<String>,
1371 }
1372
1373 impl ::codec::SerializeValue for HttpEndpointConfiguration {
1374 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1375 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1376 if let Some(ref access_key) = self.access_key {
1377 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AccessKey", access_key)?;
1378 }
1379 if let Some(ref name) = self.name {
1380 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Name", name)?;
1381 }
1382 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Url", &self.url)?;
1383 ::serde::ser::SerializeMap::end(map)
1384 }
1385 }
1386
1387 impl ::codec::DeserializeValue for HttpEndpointConfiguration {
1388 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HttpEndpointConfiguration, D::Error> {
1389 struct Visitor;
1390
1391 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1392 type Value = HttpEndpointConfiguration;
1393
1394 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1395 write!(f, "a struct of type HttpEndpointConfiguration")
1396 }
1397
1398 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1399 let mut access_key: Option<::Value<String>> = None;
1400 let mut name: Option<::Value<String>> = None;
1401 let mut url: Option<::Value<String>> = None;
1402
1403 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1404 match __cfn_key.as_ref() {
1405 "AccessKey" => {
1406 access_key = ::serde::de::MapAccess::next_value(&mut map)?;
1407 }
1408 "Name" => {
1409 name = ::serde::de::MapAccess::next_value(&mut map)?;
1410 }
1411 "Url" => {
1412 url = ::serde::de::MapAccess::next_value(&mut map)?;
1413 }
1414 _ => {}
1415 }
1416 }
1417
1418 Ok(HttpEndpointConfiguration {
1419 access_key: access_key,
1420 name: name,
1421 url: url.ok_or(::serde::de::Error::missing_field("Url"))?,
1422 })
1423 }
1424 }
1425
1426 d.deserialize_map(Visitor)
1427 }
1428 }
1429
1430 #[derive(Debug, Default)]
1432 pub struct HttpEndpointDestinationConfiguration {
1433 pub buffering_hints: Option<::Value<BufferingHints>>,
1438 pub cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>>,
1443 pub endpoint_configuration: ::Value<HttpEndpointConfiguration>,
1448 pub processing_configuration: Option<::Value<ProcessingConfiguration>>,
1453 pub request_configuration: Option<::Value<HttpEndpointRequestConfiguration>>,
1458 pub retry_options: Option<::Value<RetryOptions>>,
1463 pub role_arn: Option<::Value<String>>,
1468 pub s3_backup_mode: Option<::Value<String>>,
1473 pub s3_configuration: ::Value<S3DestinationConfiguration>,
1478 }
1479
1480 impl ::codec::SerializeValue for HttpEndpointDestinationConfiguration {
1481 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1482 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1483 if let Some(ref buffering_hints) = self.buffering_hints {
1484 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BufferingHints", buffering_hints)?;
1485 }
1486 if let Some(ref cloud_watch_logging_options) = self.cloud_watch_logging_options {
1487 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CloudWatchLoggingOptions", cloud_watch_logging_options)?;
1488 }
1489 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EndpointConfiguration", &self.endpoint_configuration)?;
1490 if let Some(ref processing_configuration) = self.processing_configuration {
1491 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProcessingConfiguration", processing_configuration)?;
1492 }
1493 if let Some(ref request_configuration) = self.request_configuration {
1494 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RequestConfiguration", request_configuration)?;
1495 }
1496 if let Some(ref retry_options) = self.retry_options {
1497 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RetryOptions", retry_options)?;
1498 }
1499 if let Some(ref role_arn) = self.role_arn {
1500 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", role_arn)?;
1501 }
1502 if let Some(ref s3_backup_mode) = self.s3_backup_mode {
1503 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupMode", s3_backup_mode)?;
1504 }
1505 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3Configuration", &self.s3_configuration)?;
1506 ::serde::ser::SerializeMap::end(map)
1507 }
1508 }
1509
1510 impl ::codec::DeserializeValue for HttpEndpointDestinationConfiguration {
1511 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HttpEndpointDestinationConfiguration, D::Error> {
1512 struct Visitor;
1513
1514 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1515 type Value = HttpEndpointDestinationConfiguration;
1516
1517 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1518 write!(f, "a struct of type HttpEndpointDestinationConfiguration")
1519 }
1520
1521 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1522 let mut buffering_hints: Option<::Value<BufferingHints>> = None;
1523 let mut cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>> = None;
1524 let mut endpoint_configuration: Option<::Value<HttpEndpointConfiguration>> = None;
1525 let mut processing_configuration: Option<::Value<ProcessingConfiguration>> = None;
1526 let mut request_configuration: Option<::Value<HttpEndpointRequestConfiguration>> = None;
1527 let mut retry_options: Option<::Value<RetryOptions>> = None;
1528 let mut role_arn: Option<::Value<String>> = None;
1529 let mut s3_backup_mode: Option<::Value<String>> = None;
1530 let mut s3_configuration: Option<::Value<S3DestinationConfiguration>> = None;
1531
1532 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1533 match __cfn_key.as_ref() {
1534 "BufferingHints" => {
1535 buffering_hints = ::serde::de::MapAccess::next_value(&mut map)?;
1536 }
1537 "CloudWatchLoggingOptions" => {
1538 cloud_watch_logging_options = ::serde::de::MapAccess::next_value(&mut map)?;
1539 }
1540 "EndpointConfiguration" => {
1541 endpoint_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1542 }
1543 "ProcessingConfiguration" => {
1544 processing_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1545 }
1546 "RequestConfiguration" => {
1547 request_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1548 }
1549 "RetryOptions" => {
1550 retry_options = ::serde::de::MapAccess::next_value(&mut map)?;
1551 }
1552 "RoleARN" => {
1553 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1554 }
1555 "S3BackupMode" => {
1556 s3_backup_mode = ::serde::de::MapAccess::next_value(&mut map)?;
1557 }
1558 "S3Configuration" => {
1559 s3_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
1560 }
1561 _ => {}
1562 }
1563 }
1564
1565 Ok(HttpEndpointDestinationConfiguration {
1566 buffering_hints: buffering_hints,
1567 cloud_watch_logging_options: cloud_watch_logging_options,
1568 endpoint_configuration: endpoint_configuration.ok_or(::serde::de::Error::missing_field("EndpointConfiguration"))?,
1569 processing_configuration: processing_configuration,
1570 request_configuration: request_configuration,
1571 retry_options: retry_options,
1572 role_arn: role_arn,
1573 s3_backup_mode: s3_backup_mode,
1574 s3_configuration: s3_configuration.ok_or(::serde::de::Error::missing_field("S3Configuration"))?,
1575 })
1576 }
1577 }
1578
1579 d.deserialize_map(Visitor)
1580 }
1581 }
1582
1583 #[derive(Debug, Default)]
1585 pub struct HttpEndpointRequestConfiguration {
1586 pub common_attributes: Option<::ValueList<HttpEndpointCommonAttribute>>,
1591 pub content_encoding: Option<::Value<String>>,
1596 }
1597
1598 impl ::codec::SerializeValue for HttpEndpointRequestConfiguration {
1599 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1600 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1601 if let Some(ref common_attributes) = self.common_attributes {
1602 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CommonAttributes", common_attributes)?;
1603 }
1604 if let Some(ref content_encoding) = self.content_encoding {
1605 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ContentEncoding", content_encoding)?;
1606 }
1607 ::serde::ser::SerializeMap::end(map)
1608 }
1609 }
1610
1611 impl ::codec::DeserializeValue for HttpEndpointRequestConfiguration {
1612 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HttpEndpointRequestConfiguration, D::Error> {
1613 struct Visitor;
1614
1615 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1616 type Value = HttpEndpointRequestConfiguration;
1617
1618 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1619 write!(f, "a struct of type HttpEndpointRequestConfiguration")
1620 }
1621
1622 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1623 let mut common_attributes: Option<::ValueList<HttpEndpointCommonAttribute>> = None;
1624 let mut content_encoding: Option<::Value<String>> = None;
1625
1626 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1627 match __cfn_key.as_ref() {
1628 "CommonAttributes" => {
1629 common_attributes = ::serde::de::MapAccess::next_value(&mut map)?;
1630 }
1631 "ContentEncoding" => {
1632 content_encoding = ::serde::de::MapAccess::next_value(&mut map)?;
1633 }
1634 _ => {}
1635 }
1636 }
1637
1638 Ok(HttpEndpointRequestConfiguration {
1639 common_attributes: common_attributes,
1640 content_encoding: content_encoding,
1641 })
1642 }
1643 }
1644
1645 d.deserialize_map(Visitor)
1646 }
1647 }
1648
1649 #[derive(Debug, Default)]
1651 pub struct InputFormatConfiguration {
1652 pub deserializer: Option<::Value<Deserializer>>,
1657 }
1658
1659 impl ::codec::SerializeValue for InputFormatConfiguration {
1660 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1661 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1662 if let Some(ref deserializer) = self.deserializer {
1663 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Deserializer", deserializer)?;
1664 }
1665 ::serde::ser::SerializeMap::end(map)
1666 }
1667 }
1668
1669 impl ::codec::DeserializeValue for InputFormatConfiguration {
1670 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<InputFormatConfiguration, D::Error> {
1671 struct Visitor;
1672
1673 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1674 type Value = InputFormatConfiguration;
1675
1676 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1677 write!(f, "a struct of type InputFormatConfiguration")
1678 }
1679
1680 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1681 let mut deserializer: Option<::Value<Deserializer>> = None;
1682
1683 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1684 match __cfn_key.as_ref() {
1685 "Deserializer" => {
1686 deserializer = ::serde::de::MapAccess::next_value(&mut map)?;
1687 }
1688 _ => {}
1689 }
1690 }
1691
1692 Ok(InputFormatConfiguration {
1693 deserializer: deserializer,
1694 })
1695 }
1696 }
1697
1698 d.deserialize_map(Visitor)
1699 }
1700 }
1701
1702 #[derive(Debug, Default)]
1704 pub struct KMSEncryptionConfig {
1705 pub awskms_key_arn: ::Value<String>,
1710 }
1711
1712 impl ::codec::SerializeValue for KMSEncryptionConfig {
1713 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1714 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1715 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AWSKMSKeyARN", &self.awskms_key_arn)?;
1716 ::serde::ser::SerializeMap::end(map)
1717 }
1718 }
1719
1720 impl ::codec::DeserializeValue for KMSEncryptionConfig {
1721 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<KMSEncryptionConfig, D::Error> {
1722 struct Visitor;
1723
1724 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1725 type Value = KMSEncryptionConfig;
1726
1727 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1728 write!(f, "a struct of type KMSEncryptionConfig")
1729 }
1730
1731 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1732 let mut awskms_key_arn: Option<::Value<String>> = None;
1733
1734 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1735 match __cfn_key.as_ref() {
1736 "AWSKMSKeyARN" => {
1737 awskms_key_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1738 }
1739 _ => {}
1740 }
1741 }
1742
1743 Ok(KMSEncryptionConfig {
1744 awskms_key_arn: awskms_key_arn.ok_or(::serde::de::Error::missing_field("AWSKMSKeyARN"))?,
1745 })
1746 }
1747 }
1748
1749 d.deserialize_map(Visitor)
1750 }
1751 }
1752
1753 #[derive(Debug, Default)]
1755 pub struct KinesisStreamSourceConfiguration {
1756 pub kinesis_stream_arn: ::Value<String>,
1761 pub role_arn: ::Value<String>,
1766 }
1767
1768 impl ::codec::SerializeValue for KinesisStreamSourceConfiguration {
1769 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1770 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1771 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KinesisStreamARN", &self.kinesis_stream_arn)?;
1772 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", &self.role_arn)?;
1773 ::serde::ser::SerializeMap::end(map)
1774 }
1775 }
1776
1777 impl ::codec::DeserializeValue for KinesisStreamSourceConfiguration {
1778 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<KinesisStreamSourceConfiguration, D::Error> {
1779 struct Visitor;
1780
1781 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1782 type Value = KinesisStreamSourceConfiguration;
1783
1784 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1785 write!(f, "a struct of type KinesisStreamSourceConfiguration")
1786 }
1787
1788 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1789 let mut kinesis_stream_arn: Option<::Value<String>> = None;
1790 let mut role_arn: Option<::Value<String>> = None;
1791
1792 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1793 match __cfn_key.as_ref() {
1794 "KinesisStreamARN" => {
1795 kinesis_stream_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1796 }
1797 "RoleARN" => {
1798 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
1799 }
1800 _ => {}
1801 }
1802 }
1803
1804 Ok(KinesisStreamSourceConfiguration {
1805 kinesis_stream_arn: kinesis_stream_arn.ok_or(::serde::de::Error::missing_field("KinesisStreamARN"))?,
1806 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleARN"))?,
1807 })
1808 }
1809 }
1810
1811 d.deserialize_map(Visitor)
1812 }
1813 }
1814
1815 #[derive(Debug, Default)]
1817 pub struct OpenXJsonSerDe {
1818 pub case_insensitive: Option<::Value<bool>>,
1823 pub column_to_json_key_mappings: Option<::ValueMap<String>>,
1828 pub convert_dots_in_json_keys_to_underscores: Option<::Value<bool>>,
1833 }
1834
1835 impl ::codec::SerializeValue for OpenXJsonSerDe {
1836 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1837 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1838 if let Some(ref case_insensitive) = self.case_insensitive {
1839 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CaseInsensitive", case_insensitive)?;
1840 }
1841 if let Some(ref column_to_json_key_mappings) = self.column_to_json_key_mappings {
1842 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ColumnToJsonKeyMappings", column_to_json_key_mappings)?;
1843 }
1844 if let Some(ref convert_dots_in_json_keys_to_underscores) = self.convert_dots_in_json_keys_to_underscores {
1845 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ConvertDotsInJsonKeysToUnderscores", convert_dots_in_json_keys_to_underscores)?;
1846 }
1847 ::serde::ser::SerializeMap::end(map)
1848 }
1849 }
1850
1851 impl ::codec::DeserializeValue for OpenXJsonSerDe {
1852 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<OpenXJsonSerDe, D::Error> {
1853 struct Visitor;
1854
1855 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1856 type Value = OpenXJsonSerDe;
1857
1858 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1859 write!(f, "a struct of type OpenXJsonSerDe")
1860 }
1861
1862 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1863 let mut case_insensitive: Option<::Value<bool>> = None;
1864 let mut column_to_json_key_mappings: Option<::ValueMap<String>> = None;
1865 let mut convert_dots_in_json_keys_to_underscores: Option<::Value<bool>> = None;
1866
1867 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1868 match __cfn_key.as_ref() {
1869 "CaseInsensitive" => {
1870 case_insensitive = ::serde::de::MapAccess::next_value(&mut map)?;
1871 }
1872 "ColumnToJsonKeyMappings" => {
1873 column_to_json_key_mappings = ::serde::de::MapAccess::next_value(&mut map)?;
1874 }
1875 "ConvertDotsInJsonKeysToUnderscores" => {
1876 convert_dots_in_json_keys_to_underscores = ::serde::de::MapAccess::next_value(&mut map)?;
1877 }
1878 _ => {}
1879 }
1880 }
1881
1882 Ok(OpenXJsonSerDe {
1883 case_insensitive: case_insensitive,
1884 column_to_json_key_mappings: column_to_json_key_mappings,
1885 convert_dots_in_json_keys_to_underscores: convert_dots_in_json_keys_to_underscores,
1886 })
1887 }
1888 }
1889
1890 d.deserialize_map(Visitor)
1891 }
1892 }
1893
1894 #[derive(Debug, Default)]
1896 pub struct OrcSerDe {
1897 pub block_size_bytes: Option<::Value<u32>>,
1902 pub bloom_filter_columns: Option<::ValueList<String>>,
1907 pub bloom_filter_false_positive_probability: Option<::Value<f64>>,
1912 pub compression: Option<::Value<String>>,
1917 pub dictionary_key_threshold: Option<::Value<f64>>,
1922 pub enable_padding: Option<::Value<bool>>,
1927 pub format_version: Option<::Value<String>>,
1932 pub padding_tolerance: Option<::Value<f64>>,
1937 pub row_index_stride: Option<::Value<u32>>,
1942 pub stripe_size_bytes: Option<::Value<u32>>,
1947 }
1948
1949 impl ::codec::SerializeValue for OrcSerDe {
1950 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1951 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1952 if let Some(ref block_size_bytes) = self.block_size_bytes {
1953 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BlockSizeBytes", block_size_bytes)?;
1954 }
1955 if let Some(ref bloom_filter_columns) = self.bloom_filter_columns {
1956 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BloomFilterColumns", bloom_filter_columns)?;
1957 }
1958 if let Some(ref bloom_filter_false_positive_probability) = self.bloom_filter_false_positive_probability {
1959 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BloomFilterFalsePositiveProbability", bloom_filter_false_positive_probability)?;
1960 }
1961 if let Some(ref compression) = self.compression {
1962 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Compression", compression)?;
1963 }
1964 if let Some(ref dictionary_key_threshold) = self.dictionary_key_threshold {
1965 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DictionaryKeyThreshold", dictionary_key_threshold)?;
1966 }
1967 if let Some(ref enable_padding) = self.enable_padding {
1968 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EnablePadding", enable_padding)?;
1969 }
1970 if let Some(ref format_version) = self.format_version {
1971 ::serde::ser::SerializeMap::serialize_entry(&mut map, "FormatVersion", format_version)?;
1972 }
1973 if let Some(ref padding_tolerance) = self.padding_tolerance {
1974 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PaddingTolerance", padding_tolerance)?;
1975 }
1976 if let Some(ref row_index_stride) = self.row_index_stride {
1977 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RowIndexStride", row_index_stride)?;
1978 }
1979 if let Some(ref stripe_size_bytes) = self.stripe_size_bytes {
1980 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StripeSizeBytes", stripe_size_bytes)?;
1981 }
1982 ::serde::ser::SerializeMap::end(map)
1983 }
1984 }
1985
1986 impl ::codec::DeserializeValue for OrcSerDe {
1987 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<OrcSerDe, D::Error> {
1988 struct Visitor;
1989
1990 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1991 type Value = OrcSerDe;
1992
1993 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1994 write!(f, "a struct of type OrcSerDe")
1995 }
1996
1997 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1998 let mut block_size_bytes: Option<::Value<u32>> = None;
1999 let mut bloom_filter_columns: Option<::ValueList<String>> = None;
2000 let mut bloom_filter_false_positive_probability: Option<::Value<f64>> = None;
2001 let mut compression: Option<::Value<String>> = None;
2002 let mut dictionary_key_threshold: Option<::Value<f64>> = None;
2003 let mut enable_padding: Option<::Value<bool>> = None;
2004 let mut format_version: Option<::Value<String>> = None;
2005 let mut padding_tolerance: Option<::Value<f64>> = None;
2006 let mut row_index_stride: Option<::Value<u32>> = None;
2007 let mut stripe_size_bytes: Option<::Value<u32>> = None;
2008
2009 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2010 match __cfn_key.as_ref() {
2011 "BlockSizeBytes" => {
2012 block_size_bytes = ::serde::de::MapAccess::next_value(&mut map)?;
2013 }
2014 "BloomFilterColumns" => {
2015 bloom_filter_columns = ::serde::de::MapAccess::next_value(&mut map)?;
2016 }
2017 "BloomFilterFalsePositiveProbability" => {
2018 bloom_filter_false_positive_probability = ::serde::de::MapAccess::next_value(&mut map)?;
2019 }
2020 "Compression" => {
2021 compression = ::serde::de::MapAccess::next_value(&mut map)?;
2022 }
2023 "DictionaryKeyThreshold" => {
2024 dictionary_key_threshold = ::serde::de::MapAccess::next_value(&mut map)?;
2025 }
2026 "EnablePadding" => {
2027 enable_padding = ::serde::de::MapAccess::next_value(&mut map)?;
2028 }
2029 "FormatVersion" => {
2030 format_version = ::serde::de::MapAccess::next_value(&mut map)?;
2031 }
2032 "PaddingTolerance" => {
2033 padding_tolerance = ::serde::de::MapAccess::next_value(&mut map)?;
2034 }
2035 "RowIndexStride" => {
2036 row_index_stride = ::serde::de::MapAccess::next_value(&mut map)?;
2037 }
2038 "StripeSizeBytes" => {
2039 stripe_size_bytes = ::serde::de::MapAccess::next_value(&mut map)?;
2040 }
2041 _ => {}
2042 }
2043 }
2044
2045 Ok(OrcSerDe {
2046 block_size_bytes: block_size_bytes,
2047 bloom_filter_columns: bloom_filter_columns,
2048 bloom_filter_false_positive_probability: bloom_filter_false_positive_probability,
2049 compression: compression,
2050 dictionary_key_threshold: dictionary_key_threshold,
2051 enable_padding: enable_padding,
2052 format_version: format_version,
2053 padding_tolerance: padding_tolerance,
2054 row_index_stride: row_index_stride,
2055 stripe_size_bytes: stripe_size_bytes,
2056 })
2057 }
2058 }
2059
2060 d.deserialize_map(Visitor)
2061 }
2062 }
2063
2064 #[derive(Debug, Default)]
2066 pub struct OutputFormatConfiguration {
2067 pub serializer: Option<::Value<Serializer>>,
2072 }
2073
2074 impl ::codec::SerializeValue for OutputFormatConfiguration {
2075 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2076 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2077 if let Some(ref serializer) = self.serializer {
2078 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Serializer", serializer)?;
2079 }
2080 ::serde::ser::SerializeMap::end(map)
2081 }
2082 }
2083
2084 impl ::codec::DeserializeValue for OutputFormatConfiguration {
2085 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<OutputFormatConfiguration, D::Error> {
2086 struct Visitor;
2087
2088 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2089 type Value = OutputFormatConfiguration;
2090
2091 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2092 write!(f, "a struct of type OutputFormatConfiguration")
2093 }
2094
2095 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2096 let mut serializer: Option<::Value<Serializer>> = None;
2097
2098 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2099 match __cfn_key.as_ref() {
2100 "Serializer" => {
2101 serializer = ::serde::de::MapAccess::next_value(&mut map)?;
2102 }
2103 _ => {}
2104 }
2105 }
2106
2107 Ok(OutputFormatConfiguration {
2108 serializer: serializer,
2109 })
2110 }
2111 }
2112
2113 d.deserialize_map(Visitor)
2114 }
2115 }
2116
2117 #[derive(Debug, Default)]
2119 pub struct ParquetSerDe {
2120 pub block_size_bytes: Option<::Value<u32>>,
2125 pub compression: Option<::Value<String>>,
2130 pub enable_dictionary_compression: Option<::Value<bool>>,
2135 pub max_padding_bytes: Option<::Value<u32>>,
2140 pub page_size_bytes: Option<::Value<u32>>,
2145 pub writer_version: Option<::Value<String>>,
2150 }
2151
2152 impl ::codec::SerializeValue for ParquetSerDe {
2153 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2154 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2155 if let Some(ref block_size_bytes) = self.block_size_bytes {
2156 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BlockSizeBytes", block_size_bytes)?;
2157 }
2158 if let Some(ref compression) = self.compression {
2159 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Compression", compression)?;
2160 }
2161 if let Some(ref enable_dictionary_compression) = self.enable_dictionary_compression {
2162 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EnableDictionaryCompression", enable_dictionary_compression)?;
2163 }
2164 if let Some(ref max_padding_bytes) = self.max_padding_bytes {
2165 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MaxPaddingBytes", max_padding_bytes)?;
2166 }
2167 if let Some(ref page_size_bytes) = self.page_size_bytes {
2168 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PageSizeBytes", page_size_bytes)?;
2169 }
2170 if let Some(ref writer_version) = self.writer_version {
2171 ::serde::ser::SerializeMap::serialize_entry(&mut map, "WriterVersion", writer_version)?;
2172 }
2173 ::serde::ser::SerializeMap::end(map)
2174 }
2175 }
2176
2177 impl ::codec::DeserializeValue for ParquetSerDe {
2178 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ParquetSerDe, D::Error> {
2179 struct Visitor;
2180
2181 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2182 type Value = ParquetSerDe;
2183
2184 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2185 write!(f, "a struct of type ParquetSerDe")
2186 }
2187
2188 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2189 let mut block_size_bytes: Option<::Value<u32>> = None;
2190 let mut compression: Option<::Value<String>> = None;
2191 let mut enable_dictionary_compression: Option<::Value<bool>> = None;
2192 let mut max_padding_bytes: Option<::Value<u32>> = None;
2193 let mut page_size_bytes: Option<::Value<u32>> = None;
2194 let mut writer_version: Option<::Value<String>> = None;
2195
2196 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2197 match __cfn_key.as_ref() {
2198 "BlockSizeBytes" => {
2199 block_size_bytes = ::serde::de::MapAccess::next_value(&mut map)?;
2200 }
2201 "Compression" => {
2202 compression = ::serde::de::MapAccess::next_value(&mut map)?;
2203 }
2204 "EnableDictionaryCompression" => {
2205 enable_dictionary_compression = ::serde::de::MapAccess::next_value(&mut map)?;
2206 }
2207 "MaxPaddingBytes" => {
2208 max_padding_bytes = ::serde::de::MapAccess::next_value(&mut map)?;
2209 }
2210 "PageSizeBytes" => {
2211 page_size_bytes = ::serde::de::MapAccess::next_value(&mut map)?;
2212 }
2213 "WriterVersion" => {
2214 writer_version = ::serde::de::MapAccess::next_value(&mut map)?;
2215 }
2216 _ => {}
2217 }
2218 }
2219
2220 Ok(ParquetSerDe {
2221 block_size_bytes: block_size_bytes,
2222 compression: compression,
2223 enable_dictionary_compression: enable_dictionary_compression,
2224 max_padding_bytes: max_padding_bytes,
2225 page_size_bytes: page_size_bytes,
2226 writer_version: writer_version,
2227 })
2228 }
2229 }
2230
2231 d.deserialize_map(Visitor)
2232 }
2233 }
2234
2235 #[derive(Debug, Default)]
2237 pub struct ProcessingConfiguration {
2238 pub enabled: Option<::Value<bool>>,
2243 pub processors: Option<::ValueList<Processor>>,
2248 }
2249
2250 impl ::codec::SerializeValue for ProcessingConfiguration {
2251 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2252 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2253 if let Some(ref enabled) = self.enabled {
2254 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Enabled", enabled)?;
2255 }
2256 if let Some(ref processors) = self.processors {
2257 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Processors", processors)?;
2258 }
2259 ::serde::ser::SerializeMap::end(map)
2260 }
2261 }
2262
2263 impl ::codec::DeserializeValue for ProcessingConfiguration {
2264 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ProcessingConfiguration, D::Error> {
2265 struct Visitor;
2266
2267 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2268 type Value = ProcessingConfiguration;
2269
2270 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2271 write!(f, "a struct of type ProcessingConfiguration")
2272 }
2273
2274 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2275 let mut enabled: Option<::Value<bool>> = None;
2276 let mut processors: Option<::ValueList<Processor>> = None;
2277
2278 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2279 match __cfn_key.as_ref() {
2280 "Enabled" => {
2281 enabled = ::serde::de::MapAccess::next_value(&mut map)?;
2282 }
2283 "Processors" => {
2284 processors = ::serde::de::MapAccess::next_value(&mut map)?;
2285 }
2286 _ => {}
2287 }
2288 }
2289
2290 Ok(ProcessingConfiguration {
2291 enabled: enabled,
2292 processors: processors,
2293 })
2294 }
2295 }
2296
2297 d.deserialize_map(Visitor)
2298 }
2299 }
2300
2301 #[derive(Debug, Default)]
2303 pub struct Processor {
2304 pub parameters: Option<::ValueList<ProcessorParameter>>,
2309 pub r#type: ::Value<String>,
2314 }
2315
2316 impl ::codec::SerializeValue for Processor {
2317 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2318 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2319 if let Some(ref parameters) = self.parameters {
2320 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Parameters", parameters)?;
2321 }
2322 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Type", &self.r#type)?;
2323 ::serde::ser::SerializeMap::end(map)
2324 }
2325 }
2326
2327 impl ::codec::DeserializeValue for Processor {
2328 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<Processor, D::Error> {
2329 struct Visitor;
2330
2331 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2332 type Value = Processor;
2333
2334 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2335 write!(f, "a struct of type Processor")
2336 }
2337
2338 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2339 let mut parameters: Option<::ValueList<ProcessorParameter>> = None;
2340 let mut r#type: Option<::Value<String>> = None;
2341
2342 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2343 match __cfn_key.as_ref() {
2344 "Parameters" => {
2345 parameters = ::serde::de::MapAccess::next_value(&mut map)?;
2346 }
2347 "Type" => {
2348 r#type = ::serde::de::MapAccess::next_value(&mut map)?;
2349 }
2350 _ => {}
2351 }
2352 }
2353
2354 Ok(Processor {
2355 parameters: parameters,
2356 r#type: r#type.ok_or(::serde::de::Error::missing_field("Type"))?,
2357 })
2358 }
2359 }
2360
2361 d.deserialize_map(Visitor)
2362 }
2363 }
2364
2365 #[derive(Debug, Default)]
2367 pub struct ProcessorParameter {
2368 pub parameter_name: ::Value<String>,
2373 pub parameter_value: ::Value<String>,
2378 }
2379
2380 impl ::codec::SerializeValue for ProcessorParameter {
2381 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2382 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2383 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ParameterName", &self.parameter_name)?;
2384 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ParameterValue", &self.parameter_value)?;
2385 ::serde::ser::SerializeMap::end(map)
2386 }
2387 }
2388
2389 impl ::codec::DeserializeValue for ProcessorParameter {
2390 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<ProcessorParameter, D::Error> {
2391 struct Visitor;
2392
2393 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2394 type Value = ProcessorParameter;
2395
2396 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2397 write!(f, "a struct of type ProcessorParameter")
2398 }
2399
2400 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2401 let mut parameter_name: Option<::Value<String>> = None;
2402 let mut parameter_value: Option<::Value<String>> = None;
2403
2404 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2405 match __cfn_key.as_ref() {
2406 "ParameterName" => {
2407 parameter_name = ::serde::de::MapAccess::next_value(&mut map)?;
2408 }
2409 "ParameterValue" => {
2410 parameter_value = ::serde::de::MapAccess::next_value(&mut map)?;
2411 }
2412 _ => {}
2413 }
2414 }
2415
2416 Ok(ProcessorParameter {
2417 parameter_name: parameter_name.ok_or(::serde::de::Error::missing_field("ParameterName"))?,
2418 parameter_value: parameter_value.ok_or(::serde::de::Error::missing_field("ParameterValue"))?,
2419 })
2420 }
2421 }
2422
2423 d.deserialize_map(Visitor)
2424 }
2425 }
2426
2427 #[derive(Debug, Default)]
2429 pub struct RedshiftDestinationConfiguration {
2430 pub cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>>,
2435 pub cluster_jdbcurl: ::Value<String>,
2440 pub copy_command: ::Value<CopyCommand>,
2445 pub password: ::Value<String>,
2450 pub processing_configuration: Option<::Value<ProcessingConfiguration>>,
2455 pub retry_options: Option<::Value<RedshiftRetryOptions>>,
2460 pub role_arn: ::Value<String>,
2465 pub s3_backup_configuration: Option<::Value<S3DestinationConfiguration>>,
2470 pub s3_backup_mode: Option<::Value<String>>,
2475 pub s3_configuration: ::Value<S3DestinationConfiguration>,
2480 pub username: ::Value<String>,
2485 }
2486
2487 impl ::codec::SerializeValue for RedshiftDestinationConfiguration {
2488 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2489 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2490 if let Some(ref cloud_watch_logging_options) = self.cloud_watch_logging_options {
2491 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CloudWatchLoggingOptions", cloud_watch_logging_options)?;
2492 }
2493 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ClusterJDBCURL", &self.cluster_jdbcurl)?;
2494 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CopyCommand", &self.copy_command)?;
2495 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Password", &self.password)?;
2496 if let Some(ref processing_configuration) = self.processing_configuration {
2497 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProcessingConfiguration", processing_configuration)?;
2498 }
2499 if let Some(ref retry_options) = self.retry_options {
2500 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RetryOptions", retry_options)?;
2501 }
2502 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", &self.role_arn)?;
2503 if let Some(ref s3_backup_configuration) = self.s3_backup_configuration {
2504 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupConfiguration", s3_backup_configuration)?;
2505 }
2506 if let Some(ref s3_backup_mode) = self.s3_backup_mode {
2507 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupMode", s3_backup_mode)?;
2508 }
2509 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3Configuration", &self.s3_configuration)?;
2510 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Username", &self.username)?;
2511 ::serde::ser::SerializeMap::end(map)
2512 }
2513 }
2514
2515 impl ::codec::DeserializeValue for RedshiftDestinationConfiguration {
2516 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<RedshiftDestinationConfiguration, D::Error> {
2517 struct Visitor;
2518
2519 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2520 type Value = RedshiftDestinationConfiguration;
2521
2522 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2523 write!(f, "a struct of type RedshiftDestinationConfiguration")
2524 }
2525
2526 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2527 let mut cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>> = None;
2528 let mut cluster_jdbcurl: Option<::Value<String>> = None;
2529 let mut copy_command: Option<::Value<CopyCommand>> = None;
2530 let mut password: Option<::Value<String>> = None;
2531 let mut processing_configuration: Option<::Value<ProcessingConfiguration>> = None;
2532 let mut retry_options: Option<::Value<RedshiftRetryOptions>> = None;
2533 let mut role_arn: Option<::Value<String>> = None;
2534 let mut s3_backup_configuration: Option<::Value<S3DestinationConfiguration>> = None;
2535 let mut s3_backup_mode: Option<::Value<String>> = None;
2536 let mut s3_configuration: Option<::Value<S3DestinationConfiguration>> = None;
2537 let mut username: Option<::Value<String>> = None;
2538
2539 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2540 match __cfn_key.as_ref() {
2541 "CloudWatchLoggingOptions" => {
2542 cloud_watch_logging_options = ::serde::de::MapAccess::next_value(&mut map)?;
2543 }
2544 "ClusterJDBCURL" => {
2545 cluster_jdbcurl = ::serde::de::MapAccess::next_value(&mut map)?;
2546 }
2547 "CopyCommand" => {
2548 copy_command = ::serde::de::MapAccess::next_value(&mut map)?;
2549 }
2550 "Password" => {
2551 password = ::serde::de::MapAccess::next_value(&mut map)?;
2552 }
2553 "ProcessingConfiguration" => {
2554 processing_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
2555 }
2556 "RetryOptions" => {
2557 retry_options = ::serde::de::MapAccess::next_value(&mut map)?;
2558 }
2559 "RoleARN" => {
2560 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2561 }
2562 "S3BackupConfiguration" => {
2563 s3_backup_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
2564 }
2565 "S3BackupMode" => {
2566 s3_backup_mode = ::serde::de::MapAccess::next_value(&mut map)?;
2567 }
2568 "S3Configuration" => {
2569 s3_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
2570 }
2571 "Username" => {
2572 username = ::serde::de::MapAccess::next_value(&mut map)?;
2573 }
2574 _ => {}
2575 }
2576 }
2577
2578 Ok(RedshiftDestinationConfiguration {
2579 cloud_watch_logging_options: cloud_watch_logging_options,
2580 cluster_jdbcurl: cluster_jdbcurl.ok_or(::serde::de::Error::missing_field("ClusterJDBCURL"))?,
2581 copy_command: copy_command.ok_or(::serde::de::Error::missing_field("CopyCommand"))?,
2582 password: password.ok_or(::serde::de::Error::missing_field("Password"))?,
2583 processing_configuration: processing_configuration,
2584 retry_options: retry_options,
2585 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleARN"))?,
2586 s3_backup_configuration: s3_backup_configuration,
2587 s3_backup_mode: s3_backup_mode,
2588 s3_configuration: s3_configuration.ok_or(::serde::de::Error::missing_field("S3Configuration"))?,
2589 username: username.ok_or(::serde::de::Error::missing_field("Username"))?,
2590 })
2591 }
2592 }
2593
2594 d.deserialize_map(Visitor)
2595 }
2596 }
2597
2598 #[derive(Debug, Default)]
2600 pub struct RedshiftRetryOptions {
2601 pub duration_in_seconds: Option<::Value<u32>>,
2606 }
2607
2608 impl ::codec::SerializeValue for RedshiftRetryOptions {
2609 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2610 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2611 if let Some(ref duration_in_seconds) = self.duration_in_seconds {
2612 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DurationInSeconds", duration_in_seconds)?;
2613 }
2614 ::serde::ser::SerializeMap::end(map)
2615 }
2616 }
2617
2618 impl ::codec::DeserializeValue for RedshiftRetryOptions {
2619 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<RedshiftRetryOptions, D::Error> {
2620 struct Visitor;
2621
2622 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2623 type Value = RedshiftRetryOptions;
2624
2625 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2626 write!(f, "a struct of type RedshiftRetryOptions")
2627 }
2628
2629 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2630 let mut duration_in_seconds: Option<::Value<u32>> = None;
2631
2632 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2633 match __cfn_key.as_ref() {
2634 "DurationInSeconds" => {
2635 duration_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2636 }
2637 _ => {}
2638 }
2639 }
2640
2641 Ok(RedshiftRetryOptions {
2642 duration_in_seconds: duration_in_seconds,
2643 })
2644 }
2645 }
2646
2647 d.deserialize_map(Visitor)
2648 }
2649 }
2650
2651 #[derive(Debug, Default)]
2653 pub struct RetryOptions {
2654 pub duration_in_seconds: Option<::Value<u32>>,
2659 }
2660
2661 impl ::codec::SerializeValue for RetryOptions {
2662 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2663 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2664 if let Some(ref duration_in_seconds) = self.duration_in_seconds {
2665 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DurationInSeconds", duration_in_seconds)?;
2666 }
2667 ::serde::ser::SerializeMap::end(map)
2668 }
2669 }
2670
2671 impl ::codec::DeserializeValue for RetryOptions {
2672 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<RetryOptions, D::Error> {
2673 struct Visitor;
2674
2675 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2676 type Value = RetryOptions;
2677
2678 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2679 write!(f, "a struct of type RetryOptions")
2680 }
2681
2682 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2683 let mut duration_in_seconds: Option<::Value<u32>> = None;
2684
2685 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2686 match __cfn_key.as_ref() {
2687 "DurationInSeconds" => {
2688 duration_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2689 }
2690 _ => {}
2691 }
2692 }
2693
2694 Ok(RetryOptions {
2695 duration_in_seconds: duration_in_seconds,
2696 })
2697 }
2698 }
2699
2700 d.deserialize_map(Visitor)
2701 }
2702 }
2703
2704 #[derive(Debug, Default)]
2706 pub struct S3DestinationConfiguration {
2707 pub bucket_arn: ::Value<String>,
2712 pub buffering_hints: Option<::Value<BufferingHints>>,
2717 pub cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>>,
2722 pub compression_format: Option<::Value<String>>,
2727 pub encryption_configuration: Option<::Value<EncryptionConfiguration>>,
2732 pub error_output_prefix: Option<::Value<String>>,
2737 pub prefix: Option<::Value<String>>,
2742 pub role_arn: ::Value<String>,
2747 }
2748
2749 impl ::codec::SerializeValue for S3DestinationConfiguration {
2750 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2751 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2752 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BucketARN", &self.bucket_arn)?;
2753 if let Some(ref buffering_hints) = self.buffering_hints {
2754 ::serde::ser::SerializeMap::serialize_entry(&mut map, "BufferingHints", buffering_hints)?;
2755 }
2756 if let Some(ref cloud_watch_logging_options) = self.cloud_watch_logging_options {
2757 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CloudWatchLoggingOptions", cloud_watch_logging_options)?;
2758 }
2759 if let Some(ref compression_format) = self.compression_format {
2760 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CompressionFormat", compression_format)?;
2761 }
2762 if let Some(ref encryption_configuration) = self.encryption_configuration {
2763 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EncryptionConfiguration", encryption_configuration)?;
2764 }
2765 if let Some(ref error_output_prefix) = self.error_output_prefix {
2766 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ErrorOutputPrefix", error_output_prefix)?;
2767 }
2768 if let Some(ref prefix) = self.prefix {
2769 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Prefix", prefix)?;
2770 }
2771 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", &self.role_arn)?;
2772 ::serde::ser::SerializeMap::end(map)
2773 }
2774 }
2775
2776 impl ::codec::DeserializeValue for S3DestinationConfiguration {
2777 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<S3DestinationConfiguration, D::Error> {
2778 struct Visitor;
2779
2780 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2781 type Value = S3DestinationConfiguration;
2782
2783 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2784 write!(f, "a struct of type S3DestinationConfiguration")
2785 }
2786
2787 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2788 let mut bucket_arn: Option<::Value<String>> = None;
2789 let mut buffering_hints: Option<::Value<BufferingHints>> = None;
2790 let mut cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>> = None;
2791 let mut compression_format: Option<::Value<String>> = None;
2792 let mut encryption_configuration: Option<::Value<EncryptionConfiguration>> = None;
2793 let mut error_output_prefix: Option<::Value<String>> = None;
2794 let mut prefix: Option<::Value<String>> = None;
2795 let mut role_arn: Option<::Value<String>> = None;
2796
2797 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2798 match __cfn_key.as_ref() {
2799 "BucketARN" => {
2800 bucket_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2801 }
2802 "BufferingHints" => {
2803 buffering_hints = ::serde::de::MapAccess::next_value(&mut map)?;
2804 }
2805 "CloudWatchLoggingOptions" => {
2806 cloud_watch_logging_options = ::serde::de::MapAccess::next_value(&mut map)?;
2807 }
2808 "CompressionFormat" => {
2809 compression_format = ::serde::de::MapAccess::next_value(&mut map)?;
2810 }
2811 "EncryptionConfiguration" => {
2812 encryption_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
2813 }
2814 "ErrorOutputPrefix" => {
2815 error_output_prefix = ::serde::de::MapAccess::next_value(&mut map)?;
2816 }
2817 "Prefix" => {
2818 prefix = ::serde::de::MapAccess::next_value(&mut map)?;
2819 }
2820 "RoleARN" => {
2821 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2822 }
2823 _ => {}
2824 }
2825 }
2826
2827 Ok(S3DestinationConfiguration {
2828 bucket_arn: bucket_arn.ok_or(::serde::de::Error::missing_field("BucketARN"))?,
2829 buffering_hints: buffering_hints,
2830 cloud_watch_logging_options: cloud_watch_logging_options,
2831 compression_format: compression_format,
2832 encryption_configuration: encryption_configuration,
2833 error_output_prefix: error_output_prefix,
2834 prefix: prefix,
2835 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleARN"))?,
2836 })
2837 }
2838 }
2839
2840 d.deserialize_map(Visitor)
2841 }
2842 }
2843
2844 #[derive(Debug, Default)]
2846 pub struct SchemaConfiguration {
2847 pub catalog_id: Option<::Value<String>>,
2852 pub database_name: Option<::Value<String>>,
2857 pub region: Option<::Value<String>>,
2862 pub role_arn: Option<::Value<String>>,
2867 pub table_name: Option<::Value<String>>,
2872 pub version_id: Option<::Value<String>>,
2877 }
2878
2879 impl ::codec::SerializeValue for SchemaConfiguration {
2880 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2881 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2882 if let Some(ref catalog_id) = self.catalog_id {
2883 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CatalogId", catalog_id)?;
2884 }
2885 if let Some(ref database_name) = self.database_name {
2886 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DatabaseName", database_name)?;
2887 }
2888 if let Some(ref region) = self.region {
2889 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Region", region)?;
2890 }
2891 if let Some(ref role_arn) = self.role_arn {
2892 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", role_arn)?;
2893 }
2894 if let Some(ref table_name) = self.table_name {
2895 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TableName", table_name)?;
2896 }
2897 if let Some(ref version_id) = self.version_id {
2898 ::serde::ser::SerializeMap::serialize_entry(&mut map, "VersionId", version_id)?;
2899 }
2900 ::serde::ser::SerializeMap::end(map)
2901 }
2902 }
2903
2904 impl ::codec::DeserializeValue for SchemaConfiguration {
2905 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<SchemaConfiguration, D::Error> {
2906 struct Visitor;
2907
2908 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2909 type Value = SchemaConfiguration;
2910
2911 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2912 write!(f, "a struct of type SchemaConfiguration")
2913 }
2914
2915 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2916 let mut catalog_id: Option<::Value<String>> = None;
2917 let mut database_name: Option<::Value<String>> = None;
2918 let mut region: Option<::Value<String>> = None;
2919 let mut role_arn: Option<::Value<String>> = None;
2920 let mut table_name: Option<::Value<String>> = None;
2921 let mut version_id: Option<::Value<String>> = None;
2922
2923 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2924 match __cfn_key.as_ref() {
2925 "CatalogId" => {
2926 catalog_id = ::serde::de::MapAccess::next_value(&mut map)?;
2927 }
2928 "DatabaseName" => {
2929 database_name = ::serde::de::MapAccess::next_value(&mut map)?;
2930 }
2931 "Region" => {
2932 region = ::serde::de::MapAccess::next_value(&mut map)?;
2933 }
2934 "RoleARN" => {
2935 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2936 }
2937 "TableName" => {
2938 table_name = ::serde::de::MapAccess::next_value(&mut map)?;
2939 }
2940 "VersionId" => {
2941 version_id = ::serde::de::MapAccess::next_value(&mut map)?;
2942 }
2943 _ => {}
2944 }
2945 }
2946
2947 Ok(SchemaConfiguration {
2948 catalog_id: catalog_id,
2949 database_name: database_name,
2950 region: region,
2951 role_arn: role_arn,
2952 table_name: table_name,
2953 version_id: version_id,
2954 })
2955 }
2956 }
2957
2958 d.deserialize_map(Visitor)
2959 }
2960 }
2961
2962 #[derive(Debug, Default)]
2964 pub struct Serializer {
2965 pub orc_ser_de: Option<::Value<OrcSerDe>>,
2970 pub parquet_ser_de: Option<::Value<ParquetSerDe>>,
2975 }
2976
2977 impl ::codec::SerializeValue for Serializer {
2978 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2979 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2980 if let Some(ref orc_ser_de) = self.orc_ser_de {
2981 ::serde::ser::SerializeMap::serialize_entry(&mut map, "OrcSerDe", orc_ser_de)?;
2982 }
2983 if let Some(ref parquet_ser_de) = self.parquet_ser_de {
2984 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ParquetSerDe", parquet_ser_de)?;
2985 }
2986 ::serde::ser::SerializeMap::end(map)
2987 }
2988 }
2989
2990 impl ::codec::DeserializeValue for Serializer {
2991 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<Serializer, D::Error> {
2992 struct Visitor;
2993
2994 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2995 type Value = Serializer;
2996
2997 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2998 write!(f, "a struct of type Serializer")
2999 }
3000
3001 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3002 let mut orc_ser_de: Option<::Value<OrcSerDe>> = None;
3003 let mut parquet_ser_de: Option<::Value<ParquetSerDe>> = None;
3004
3005 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3006 match __cfn_key.as_ref() {
3007 "OrcSerDe" => {
3008 orc_ser_de = ::serde::de::MapAccess::next_value(&mut map)?;
3009 }
3010 "ParquetSerDe" => {
3011 parquet_ser_de = ::serde::de::MapAccess::next_value(&mut map)?;
3012 }
3013 _ => {}
3014 }
3015 }
3016
3017 Ok(Serializer {
3018 orc_ser_de: orc_ser_de,
3019 parquet_ser_de: parquet_ser_de,
3020 })
3021 }
3022 }
3023
3024 d.deserialize_map(Visitor)
3025 }
3026 }
3027
3028 #[derive(Debug, Default)]
3030 pub struct SplunkDestinationConfiguration {
3031 pub cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>>,
3036 pub hec_acknowledgment_timeout_in_seconds: Option<::Value<u32>>,
3041 pub hec_endpoint: ::Value<String>,
3046 pub hec_endpoint_type: ::Value<String>,
3051 pub hec_token: ::Value<String>,
3056 pub processing_configuration: Option<::Value<ProcessingConfiguration>>,
3061 pub retry_options: Option<::Value<SplunkRetryOptions>>,
3066 pub s3_backup_mode: Option<::Value<String>>,
3071 pub s3_configuration: ::Value<S3DestinationConfiguration>,
3076 }
3077
3078 impl ::codec::SerializeValue for SplunkDestinationConfiguration {
3079 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3080 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3081 if let Some(ref cloud_watch_logging_options) = self.cloud_watch_logging_options {
3082 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CloudWatchLoggingOptions", cloud_watch_logging_options)?;
3083 }
3084 if let Some(ref hec_acknowledgment_timeout_in_seconds) = self.hec_acknowledgment_timeout_in_seconds {
3085 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HECAcknowledgmentTimeoutInSeconds", hec_acknowledgment_timeout_in_seconds)?;
3086 }
3087 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HECEndpoint", &self.hec_endpoint)?;
3088 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HECEndpointType", &self.hec_endpoint_type)?;
3089 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HECToken", &self.hec_token)?;
3090 if let Some(ref processing_configuration) = self.processing_configuration {
3091 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProcessingConfiguration", processing_configuration)?;
3092 }
3093 if let Some(ref retry_options) = self.retry_options {
3094 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RetryOptions", retry_options)?;
3095 }
3096 if let Some(ref s3_backup_mode) = self.s3_backup_mode {
3097 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3BackupMode", s3_backup_mode)?;
3098 }
3099 ::serde::ser::SerializeMap::serialize_entry(&mut map, "S3Configuration", &self.s3_configuration)?;
3100 ::serde::ser::SerializeMap::end(map)
3101 }
3102 }
3103
3104 impl ::codec::DeserializeValue for SplunkDestinationConfiguration {
3105 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<SplunkDestinationConfiguration, D::Error> {
3106 struct Visitor;
3107
3108 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3109 type Value = SplunkDestinationConfiguration;
3110
3111 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3112 write!(f, "a struct of type SplunkDestinationConfiguration")
3113 }
3114
3115 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3116 let mut cloud_watch_logging_options: Option<::Value<CloudWatchLoggingOptions>> = None;
3117 let mut hec_acknowledgment_timeout_in_seconds: Option<::Value<u32>> = None;
3118 let mut hec_endpoint: Option<::Value<String>> = None;
3119 let mut hec_endpoint_type: Option<::Value<String>> = None;
3120 let mut hec_token: Option<::Value<String>> = None;
3121 let mut processing_configuration: Option<::Value<ProcessingConfiguration>> = None;
3122 let mut retry_options: Option<::Value<SplunkRetryOptions>> = None;
3123 let mut s3_backup_mode: Option<::Value<String>> = None;
3124 let mut s3_configuration: Option<::Value<S3DestinationConfiguration>> = None;
3125
3126 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3127 match __cfn_key.as_ref() {
3128 "CloudWatchLoggingOptions" => {
3129 cloud_watch_logging_options = ::serde::de::MapAccess::next_value(&mut map)?;
3130 }
3131 "HECAcknowledgmentTimeoutInSeconds" => {
3132 hec_acknowledgment_timeout_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
3133 }
3134 "HECEndpoint" => {
3135 hec_endpoint = ::serde::de::MapAccess::next_value(&mut map)?;
3136 }
3137 "HECEndpointType" => {
3138 hec_endpoint_type = ::serde::de::MapAccess::next_value(&mut map)?;
3139 }
3140 "HECToken" => {
3141 hec_token = ::serde::de::MapAccess::next_value(&mut map)?;
3142 }
3143 "ProcessingConfiguration" => {
3144 processing_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
3145 }
3146 "RetryOptions" => {
3147 retry_options = ::serde::de::MapAccess::next_value(&mut map)?;
3148 }
3149 "S3BackupMode" => {
3150 s3_backup_mode = ::serde::de::MapAccess::next_value(&mut map)?;
3151 }
3152 "S3Configuration" => {
3153 s3_configuration = ::serde::de::MapAccess::next_value(&mut map)?;
3154 }
3155 _ => {}
3156 }
3157 }
3158
3159 Ok(SplunkDestinationConfiguration {
3160 cloud_watch_logging_options: cloud_watch_logging_options,
3161 hec_acknowledgment_timeout_in_seconds: hec_acknowledgment_timeout_in_seconds,
3162 hec_endpoint: hec_endpoint.ok_or(::serde::de::Error::missing_field("HECEndpoint"))?,
3163 hec_endpoint_type: hec_endpoint_type.ok_or(::serde::de::Error::missing_field("HECEndpointType"))?,
3164 hec_token: hec_token.ok_or(::serde::de::Error::missing_field("HECToken"))?,
3165 processing_configuration: processing_configuration,
3166 retry_options: retry_options,
3167 s3_backup_mode: s3_backup_mode,
3168 s3_configuration: s3_configuration.ok_or(::serde::de::Error::missing_field("S3Configuration"))?,
3169 })
3170 }
3171 }
3172
3173 d.deserialize_map(Visitor)
3174 }
3175 }
3176
3177 #[derive(Debug, Default)]
3179 pub struct SplunkRetryOptions {
3180 pub duration_in_seconds: Option<::Value<u32>>,
3185 }
3186
3187 impl ::codec::SerializeValue for SplunkRetryOptions {
3188 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3189 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3190 if let Some(ref duration_in_seconds) = self.duration_in_seconds {
3191 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DurationInSeconds", duration_in_seconds)?;
3192 }
3193 ::serde::ser::SerializeMap::end(map)
3194 }
3195 }
3196
3197 impl ::codec::DeserializeValue for SplunkRetryOptions {
3198 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<SplunkRetryOptions, D::Error> {
3199 struct Visitor;
3200
3201 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3202 type Value = SplunkRetryOptions;
3203
3204 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3205 write!(f, "a struct of type SplunkRetryOptions")
3206 }
3207
3208 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3209 let mut duration_in_seconds: Option<::Value<u32>> = None;
3210
3211 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3212 match __cfn_key.as_ref() {
3213 "DurationInSeconds" => {
3214 duration_in_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
3215 }
3216 _ => {}
3217 }
3218 }
3219
3220 Ok(SplunkRetryOptions {
3221 duration_in_seconds: duration_in_seconds,
3222 })
3223 }
3224 }
3225
3226 d.deserialize_map(Visitor)
3227 }
3228 }
3229
3230 #[derive(Debug, Default)]
3232 pub struct VpcConfiguration {
3233 pub role_arn: ::Value<String>,
3238 pub security_group_ids: ::ValueList<String>,
3243 pub subnet_ids: ::ValueList<String>,
3248 }
3249
3250 impl ::codec::SerializeValue for VpcConfiguration {
3251 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3252 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3253 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleARN", &self.role_arn)?;
3254 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SecurityGroupIds", &self.security_group_ids)?;
3255 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SubnetIds", &self.subnet_ids)?;
3256 ::serde::ser::SerializeMap::end(map)
3257 }
3258 }
3259
3260 impl ::codec::DeserializeValue for VpcConfiguration {
3261 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<VpcConfiguration, D::Error> {
3262 struct Visitor;
3263
3264 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3265 type Value = VpcConfiguration;
3266
3267 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3268 write!(f, "a struct of type VpcConfiguration")
3269 }
3270
3271 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3272 let mut role_arn: Option<::Value<String>> = None;
3273 let mut security_group_ids: Option<::ValueList<String>> = None;
3274 let mut subnet_ids: Option<::ValueList<String>> = None;
3275
3276 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3277 match __cfn_key.as_ref() {
3278 "RoleARN" => {
3279 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
3280 }
3281 "SecurityGroupIds" => {
3282 security_group_ids = ::serde::de::MapAccess::next_value(&mut map)?;
3283 }
3284 "SubnetIds" => {
3285 subnet_ids = ::serde::de::MapAccess::next_value(&mut map)?;
3286 }
3287 _ => {}
3288 }
3289 }
3290
3291 Ok(VpcConfiguration {
3292 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleARN"))?,
3293 security_group_ids: security_group_ids.ok_or(::serde::de::Error::missing_field("SecurityGroupIds"))?,
3294 subnet_ids: subnet_ids.ok_or(::serde::de::Error::missing_field("SubnetIds"))?,
3295 })
3296 }
3297 }
3298
3299 d.deserialize_map(Visitor)
3300 }
3301 }
3302}