1#[derive(Debug, Default)]
5pub struct Asset {
6 properties: AssetProperties
7}
8
9#[derive(Debug, Default)]
11pub struct AssetProperties {
12 pub id: ::Value<String>,
17 pub packaging_group_id: ::Value<String>,
22 pub resource_id: Option<::Value<String>>,
27 pub source_arn: ::Value<String>,
32 pub source_role_arn: ::Value<String>,
37 pub tags: Option<::ValueList<::Tag>>,
42}
43
44impl ::serde::Serialize for AssetProperties {
45 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
46 let mut map = ::serde::Serializer::serialize_map(s, None)?;
47 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Id", &self.id)?;
48 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PackagingGroupId", &self.packaging_group_id)?;
49 if let Some(ref resource_id) = self.resource_id {
50 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ResourceId", resource_id)?;
51 }
52 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SourceArn", &self.source_arn)?;
53 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SourceRoleArn", &self.source_role_arn)?;
54 if let Some(ref tags) = self.tags {
55 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
56 }
57 ::serde::ser::SerializeMap::end(map)
58 }
59}
60
61impl<'de> ::serde::Deserialize<'de> for AssetProperties {
62 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<AssetProperties, D::Error> {
63 struct Visitor;
64
65 impl<'de> ::serde::de::Visitor<'de> for Visitor {
66 type Value = AssetProperties;
67
68 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
69 write!(f, "a struct of type AssetProperties")
70 }
71
72 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
73 let mut id: Option<::Value<String>> = None;
74 let mut packaging_group_id: Option<::Value<String>> = None;
75 let mut resource_id: Option<::Value<String>> = None;
76 let mut source_arn: Option<::Value<String>> = None;
77 let mut source_role_arn: Option<::Value<String>> = None;
78 let mut tags: Option<::ValueList<::Tag>> = None;
79
80 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
81 match __cfn_key.as_ref() {
82 "Id" => {
83 id = ::serde::de::MapAccess::next_value(&mut map)?;
84 }
85 "PackagingGroupId" => {
86 packaging_group_id = ::serde::de::MapAccess::next_value(&mut map)?;
87 }
88 "ResourceId" => {
89 resource_id = ::serde::de::MapAccess::next_value(&mut map)?;
90 }
91 "SourceArn" => {
92 source_arn = ::serde::de::MapAccess::next_value(&mut map)?;
93 }
94 "SourceRoleArn" => {
95 source_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
96 }
97 "Tags" => {
98 tags = ::serde::de::MapAccess::next_value(&mut map)?;
99 }
100 _ => {}
101 }
102 }
103
104 Ok(AssetProperties {
105 id: id.ok_or(::serde::de::Error::missing_field("Id"))?,
106 packaging_group_id: packaging_group_id.ok_or(::serde::de::Error::missing_field("PackagingGroupId"))?,
107 resource_id: resource_id,
108 source_arn: source_arn.ok_or(::serde::de::Error::missing_field("SourceArn"))?,
109 source_role_arn: source_role_arn.ok_or(::serde::de::Error::missing_field("SourceRoleArn"))?,
110 tags: tags,
111 })
112 }
113 }
114
115 d.deserialize_map(Visitor)
116 }
117}
118
119impl ::Resource for Asset {
120 type Properties = AssetProperties;
121 const TYPE: &'static str = "AWS::MediaPackage::Asset";
122 fn properties(&self) -> &AssetProperties {
123 &self.properties
124 }
125 fn properties_mut(&mut self) -> &mut AssetProperties {
126 &mut self.properties
127 }
128}
129
130impl ::private::Sealed for Asset {}
131
132impl From<AssetProperties> for Asset {
133 fn from(properties: AssetProperties) -> Asset {
134 Asset { properties }
135 }
136}
137
138#[derive(Debug, Default)]
140pub struct Channel {
141 properties: ChannelProperties
142}
143
144#[derive(Debug, Default)]
146pub struct ChannelProperties {
147 pub description: Option<::Value<String>>,
152 pub egress_access_logs: Option<::Value<self::channel::LogConfiguration>>,
157 pub id: ::Value<String>,
162 pub ingress_access_logs: Option<::Value<self::channel::LogConfiguration>>,
167 pub tags: Option<::ValueList<::Tag>>,
172}
173
174impl ::serde::Serialize for ChannelProperties {
175 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
176 let mut map = ::serde::Serializer::serialize_map(s, None)?;
177 if let Some(ref description) = self.description {
178 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Description", description)?;
179 }
180 if let Some(ref egress_access_logs) = self.egress_access_logs {
181 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EgressAccessLogs", egress_access_logs)?;
182 }
183 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Id", &self.id)?;
184 if let Some(ref ingress_access_logs) = self.ingress_access_logs {
185 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IngressAccessLogs", ingress_access_logs)?;
186 }
187 if let Some(ref tags) = self.tags {
188 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
189 }
190 ::serde::ser::SerializeMap::end(map)
191 }
192}
193
194impl<'de> ::serde::Deserialize<'de> for ChannelProperties {
195 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<ChannelProperties, D::Error> {
196 struct Visitor;
197
198 impl<'de> ::serde::de::Visitor<'de> for Visitor {
199 type Value = ChannelProperties;
200
201 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
202 write!(f, "a struct of type ChannelProperties")
203 }
204
205 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
206 let mut description: Option<::Value<String>> = None;
207 let mut egress_access_logs: Option<::Value<self::channel::LogConfiguration>> = None;
208 let mut id: Option<::Value<String>> = None;
209 let mut ingress_access_logs: Option<::Value<self::channel::LogConfiguration>> = None;
210 let mut tags: Option<::ValueList<::Tag>> = None;
211
212 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
213 match __cfn_key.as_ref() {
214 "Description" => {
215 description = ::serde::de::MapAccess::next_value(&mut map)?;
216 }
217 "EgressAccessLogs" => {
218 egress_access_logs = ::serde::de::MapAccess::next_value(&mut map)?;
219 }
220 "Id" => {
221 id = ::serde::de::MapAccess::next_value(&mut map)?;
222 }
223 "IngressAccessLogs" => {
224 ingress_access_logs = ::serde::de::MapAccess::next_value(&mut map)?;
225 }
226 "Tags" => {
227 tags = ::serde::de::MapAccess::next_value(&mut map)?;
228 }
229 _ => {}
230 }
231 }
232
233 Ok(ChannelProperties {
234 description: description,
235 egress_access_logs: egress_access_logs,
236 id: id.ok_or(::serde::de::Error::missing_field("Id"))?,
237 ingress_access_logs: ingress_access_logs,
238 tags: tags,
239 })
240 }
241 }
242
243 d.deserialize_map(Visitor)
244 }
245}
246
247impl ::Resource for Channel {
248 type Properties = ChannelProperties;
249 const TYPE: &'static str = "AWS::MediaPackage::Channel";
250 fn properties(&self) -> &ChannelProperties {
251 &self.properties
252 }
253 fn properties_mut(&mut self) -> &mut ChannelProperties {
254 &mut self.properties
255 }
256}
257
258impl ::private::Sealed for Channel {}
259
260impl From<ChannelProperties> for Channel {
261 fn from(properties: ChannelProperties) -> Channel {
262 Channel { properties }
263 }
264}
265
266#[derive(Debug, Default)]
268pub struct OriginEndpoint {
269 properties: OriginEndpointProperties
270}
271
272#[derive(Debug, Default)]
274pub struct OriginEndpointProperties {
275 pub authorization: Option<::Value<self::origin_endpoint::Authorization>>,
280 pub channel_id: ::Value<String>,
285 pub cmaf_package: Option<::Value<self::origin_endpoint::CmafPackage>>,
290 pub dash_package: Option<::Value<self::origin_endpoint::DashPackage>>,
295 pub description: Option<::Value<String>>,
300 pub hls_package: Option<::Value<self::origin_endpoint::HlsPackage>>,
305 pub id: ::Value<String>,
310 pub manifest_name: Option<::Value<String>>,
315 pub mss_package: Option<::Value<self::origin_endpoint::MssPackage>>,
320 pub origination: Option<::Value<String>>,
325 pub startover_window_seconds: Option<::Value<u32>>,
330 pub tags: Option<::ValueList<::Tag>>,
335 pub time_delay_seconds: Option<::Value<u32>>,
340 pub whitelist: Option<::ValueList<String>>,
345}
346
347impl ::serde::Serialize for OriginEndpointProperties {
348 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
349 let mut map = ::serde::Serializer::serialize_map(s, None)?;
350 if let Some(ref authorization) = self.authorization {
351 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Authorization", authorization)?;
352 }
353 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ChannelId", &self.channel_id)?;
354 if let Some(ref cmaf_package) = self.cmaf_package {
355 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CmafPackage", cmaf_package)?;
356 }
357 if let Some(ref dash_package) = self.dash_package {
358 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DashPackage", dash_package)?;
359 }
360 if let Some(ref description) = self.description {
361 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Description", description)?;
362 }
363 if let Some(ref hls_package) = self.hls_package {
364 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HlsPackage", hls_package)?;
365 }
366 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Id", &self.id)?;
367 if let Some(ref manifest_name) = self.manifest_name {
368 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestName", manifest_name)?;
369 }
370 if let Some(ref mss_package) = self.mss_package {
371 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MssPackage", mss_package)?;
372 }
373 if let Some(ref origination) = self.origination {
374 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Origination", origination)?;
375 }
376 if let Some(ref startover_window_seconds) = self.startover_window_seconds {
377 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StartoverWindowSeconds", startover_window_seconds)?;
378 }
379 if let Some(ref tags) = self.tags {
380 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
381 }
382 if let Some(ref time_delay_seconds) = self.time_delay_seconds {
383 ::serde::ser::SerializeMap::serialize_entry(&mut map, "TimeDelaySeconds", time_delay_seconds)?;
384 }
385 if let Some(ref whitelist) = self.whitelist {
386 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Whitelist", whitelist)?;
387 }
388 ::serde::ser::SerializeMap::end(map)
389 }
390}
391
392impl<'de> ::serde::Deserialize<'de> for OriginEndpointProperties {
393 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<OriginEndpointProperties, D::Error> {
394 struct Visitor;
395
396 impl<'de> ::serde::de::Visitor<'de> for Visitor {
397 type Value = OriginEndpointProperties;
398
399 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
400 write!(f, "a struct of type OriginEndpointProperties")
401 }
402
403 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
404 let mut authorization: Option<::Value<self::origin_endpoint::Authorization>> = None;
405 let mut channel_id: Option<::Value<String>> = None;
406 let mut cmaf_package: Option<::Value<self::origin_endpoint::CmafPackage>> = None;
407 let mut dash_package: Option<::Value<self::origin_endpoint::DashPackage>> = None;
408 let mut description: Option<::Value<String>> = None;
409 let mut hls_package: Option<::Value<self::origin_endpoint::HlsPackage>> = None;
410 let mut id: Option<::Value<String>> = None;
411 let mut manifest_name: Option<::Value<String>> = None;
412 let mut mss_package: Option<::Value<self::origin_endpoint::MssPackage>> = None;
413 let mut origination: Option<::Value<String>> = None;
414 let mut startover_window_seconds: Option<::Value<u32>> = None;
415 let mut tags: Option<::ValueList<::Tag>> = None;
416 let mut time_delay_seconds: Option<::Value<u32>> = None;
417 let mut whitelist: Option<::ValueList<String>> = None;
418
419 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
420 match __cfn_key.as_ref() {
421 "Authorization" => {
422 authorization = ::serde::de::MapAccess::next_value(&mut map)?;
423 }
424 "ChannelId" => {
425 channel_id = ::serde::de::MapAccess::next_value(&mut map)?;
426 }
427 "CmafPackage" => {
428 cmaf_package = ::serde::de::MapAccess::next_value(&mut map)?;
429 }
430 "DashPackage" => {
431 dash_package = ::serde::de::MapAccess::next_value(&mut map)?;
432 }
433 "Description" => {
434 description = ::serde::de::MapAccess::next_value(&mut map)?;
435 }
436 "HlsPackage" => {
437 hls_package = ::serde::de::MapAccess::next_value(&mut map)?;
438 }
439 "Id" => {
440 id = ::serde::de::MapAccess::next_value(&mut map)?;
441 }
442 "ManifestName" => {
443 manifest_name = ::serde::de::MapAccess::next_value(&mut map)?;
444 }
445 "MssPackage" => {
446 mss_package = ::serde::de::MapAccess::next_value(&mut map)?;
447 }
448 "Origination" => {
449 origination = ::serde::de::MapAccess::next_value(&mut map)?;
450 }
451 "StartoverWindowSeconds" => {
452 startover_window_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
453 }
454 "Tags" => {
455 tags = ::serde::de::MapAccess::next_value(&mut map)?;
456 }
457 "TimeDelaySeconds" => {
458 time_delay_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
459 }
460 "Whitelist" => {
461 whitelist = ::serde::de::MapAccess::next_value(&mut map)?;
462 }
463 _ => {}
464 }
465 }
466
467 Ok(OriginEndpointProperties {
468 authorization: authorization,
469 channel_id: channel_id.ok_or(::serde::de::Error::missing_field("ChannelId"))?,
470 cmaf_package: cmaf_package,
471 dash_package: dash_package,
472 description: description,
473 hls_package: hls_package,
474 id: id.ok_or(::serde::de::Error::missing_field("Id"))?,
475 manifest_name: manifest_name,
476 mss_package: mss_package,
477 origination: origination,
478 startover_window_seconds: startover_window_seconds,
479 tags: tags,
480 time_delay_seconds: time_delay_seconds,
481 whitelist: whitelist,
482 })
483 }
484 }
485
486 d.deserialize_map(Visitor)
487 }
488}
489
490impl ::Resource for OriginEndpoint {
491 type Properties = OriginEndpointProperties;
492 const TYPE: &'static str = "AWS::MediaPackage::OriginEndpoint";
493 fn properties(&self) -> &OriginEndpointProperties {
494 &self.properties
495 }
496 fn properties_mut(&mut self) -> &mut OriginEndpointProperties {
497 &mut self.properties
498 }
499}
500
501impl ::private::Sealed for OriginEndpoint {}
502
503impl From<OriginEndpointProperties> for OriginEndpoint {
504 fn from(properties: OriginEndpointProperties) -> OriginEndpoint {
505 OriginEndpoint { properties }
506 }
507}
508
509#[derive(Debug, Default)]
511pub struct PackagingConfiguration {
512 properties: PackagingConfigurationProperties
513}
514
515#[derive(Debug, Default)]
517pub struct PackagingConfigurationProperties {
518 pub cmaf_package: Option<::Value<self::packaging_configuration::CmafPackage>>,
523 pub dash_package: Option<::Value<self::packaging_configuration::DashPackage>>,
528 pub hls_package: Option<::Value<self::packaging_configuration::HlsPackage>>,
533 pub id: ::Value<String>,
538 pub mss_package: Option<::Value<self::packaging_configuration::MssPackage>>,
543 pub packaging_group_id: ::Value<String>,
548 pub tags: Option<::ValueList<::Tag>>,
553}
554
555impl ::serde::Serialize for PackagingConfigurationProperties {
556 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
557 let mut map = ::serde::Serializer::serialize_map(s, None)?;
558 if let Some(ref cmaf_package) = self.cmaf_package {
559 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CmafPackage", cmaf_package)?;
560 }
561 if let Some(ref dash_package) = self.dash_package {
562 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DashPackage", dash_package)?;
563 }
564 if let Some(ref hls_package) = self.hls_package {
565 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HlsPackage", hls_package)?;
566 }
567 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Id", &self.id)?;
568 if let Some(ref mss_package) = self.mss_package {
569 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MssPackage", mss_package)?;
570 }
571 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PackagingGroupId", &self.packaging_group_id)?;
572 if let Some(ref tags) = self.tags {
573 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
574 }
575 ::serde::ser::SerializeMap::end(map)
576 }
577}
578
579impl<'de> ::serde::Deserialize<'de> for PackagingConfigurationProperties {
580 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<PackagingConfigurationProperties, D::Error> {
581 struct Visitor;
582
583 impl<'de> ::serde::de::Visitor<'de> for Visitor {
584 type Value = PackagingConfigurationProperties;
585
586 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
587 write!(f, "a struct of type PackagingConfigurationProperties")
588 }
589
590 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
591 let mut cmaf_package: Option<::Value<self::packaging_configuration::CmafPackage>> = None;
592 let mut dash_package: Option<::Value<self::packaging_configuration::DashPackage>> = None;
593 let mut hls_package: Option<::Value<self::packaging_configuration::HlsPackage>> = None;
594 let mut id: Option<::Value<String>> = None;
595 let mut mss_package: Option<::Value<self::packaging_configuration::MssPackage>> = None;
596 let mut packaging_group_id: Option<::Value<String>> = None;
597 let mut tags: Option<::ValueList<::Tag>> = None;
598
599 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
600 match __cfn_key.as_ref() {
601 "CmafPackage" => {
602 cmaf_package = ::serde::de::MapAccess::next_value(&mut map)?;
603 }
604 "DashPackage" => {
605 dash_package = ::serde::de::MapAccess::next_value(&mut map)?;
606 }
607 "HlsPackage" => {
608 hls_package = ::serde::de::MapAccess::next_value(&mut map)?;
609 }
610 "Id" => {
611 id = ::serde::de::MapAccess::next_value(&mut map)?;
612 }
613 "MssPackage" => {
614 mss_package = ::serde::de::MapAccess::next_value(&mut map)?;
615 }
616 "PackagingGroupId" => {
617 packaging_group_id = ::serde::de::MapAccess::next_value(&mut map)?;
618 }
619 "Tags" => {
620 tags = ::serde::de::MapAccess::next_value(&mut map)?;
621 }
622 _ => {}
623 }
624 }
625
626 Ok(PackagingConfigurationProperties {
627 cmaf_package: cmaf_package,
628 dash_package: dash_package,
629 hls_package: hls_package,
630 id: id.ok_or(::serde::de::Error::missing_field("Id"))?,
631 mss_package: mss_package,
632 packaging_group_id: packaging_group_id.ok_or(::serde::de::Error::missing_field("PackagingGroupId"))?,
633 tags: tags,
634 })
635 }
636 }
637
638 d.deserialize_map(Visitor)
639 }
640}
641
642impl ::Resource for PackagingConfiguration {
643 type Properties = PackagingConfigurationProperties;
644 const TYPE: &'static str = "AWS::MediaPackage::PackagingConfiguration";
645 fn properties(&self) -> &PackagingConfigurationProperties {
646 &self.properties
647 }
648 fn properties_mut(&mut self) -> &mut PackagingConfigurationProperties {
649 &mut self.properties
650 }
651}
652
653impl ::private::Sealed for PackagingConfiguration {}
654
655impl From<PackagingConfigurationProperties> for PackagingConfiguration {
656 fn from(properties: PackagingConfigurationProperties) -> PackagingConfiguration {
657 PackagingConfiguration { properties }
658 }
659}
660
661#[derive(Debug, Default)]
663pub struct PackagingGroup {
664 properties: PackagingGroupProperties
665}
666
667#[derive(Debug, Default)]
669pub struct PackagingGroupProperties {
670 pub authorization: Option<::Value<self::packaging_group::Authorization>>,
675 pub egress_access_logs: Option<::Value<self::packaging_group::LogConfiguration>>,
680 pub id: ::Value<String>,
685 pub tags: Option<::ValueList<::Tag>>,
690}
691
692impl ::serde::Serialize for PackagingGroupProperties {
693 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
694 let mut map = ::serde::Serializer::serialize_map(s, None)?;
695 if let Some(ref authorization) = self.authorization {
696 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Authorization", authorization)?;
697 }
698 if let Some(ref egress_access_logs) = self.egress_access_logs {
699 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EgressAccessLogs", egress_access_logs)?;
700 }
701 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Id", &self.id)?;
702 if let Some(ref tags) = self.tags {
703 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Tags", tags)?;
704 }
705 ::serde::ser::SerializeMap::end(map)
706 }
707}
708
709impl<'de> ::serde::Deserialize<'de> for PackagingGroupProperties {
710 fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<PackagingGroupProperties, D::Error> {
711 struct Visitor;
712
713 impl<'de> ::serde::de::Visitor<'de> for Visitor {
714 type Value = PackagingGroupProperties;
715
716 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
717 write!(f, "a struct of type PackagingGroupProperties")
718 }
719
720 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
721 let mut authorization: Option<::Value<self::packaging_group::Authorization>> = None;
722 let mut egress_access_logs: Option<::Value<self::packaging_group::LogConfiguration>> = None;
723 let mut id: Option<::Value<String>> = None;
724 let mut tags: Option<::ValueList<::Tag>> = None;
725
726 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
727 match __cfn_key.as_ref() {
728 "Authorization" => {
729 authorization = ::serde::de::MapAccess::next_value(&mut map)?;
730 }
731 "EgressAccessLogs" => {
732 egress_access_logs = ::serde::de::MapAccess::next_value(&mut map)?;
733 }
734 "Id" => {
735 id = ::serde::de::MapAccess::next_value(&mut map)?;
736 }
737 "Tags" => {
738 tags = ::serde::de::MapAccess::next_value(&mut map)?;
739 }
740 _ => {}
741 }
742 }
743
744 Ok(PackagingGroupProperties {
745 authorization: authorization,
746 egress_access_logs: egress_access_logs,
747 id: id.ok_or(::serde::de::Error::missing_field("Id"))?,
748 tags: tags,
749 })
750 }
751 }
752
753 d.deserialize_map(Visitor)
754 }
755}
756
757impl ::Resource for PackagingGroup {
758 type Properties = PackagingGroupProperties;
759 const TYPE: &'static str = "AWS::MediaPackage::PackagingGroup";
760 fn properties(&self) -> &PackagingGroupProperties {
761 &self.properties
762 }
763 fn properties_mut(&mut self) -> &mut PackagingGroupProperties {
764 &mut self.properties
765 }
766}
767
768impl ::private::Sealed for PackagingGroup {}
769
770impl From<PackagingGroupProperties> for PackagingGroup {
771 fn from(properties: PackagingGroupProperties) -> PackagingGroup {
772 PackagingGroup { properties }
773 }
774}
775
776pub mod asset {
777 #[derive(Debug, Default)]
781 pub struct EgressEndpoint {
782 pub packaging_configuration_id: ::Value<String>,
787 pub url: ::Value<String>,
792 }
793
794 impl ::codec::SerializeValue for EgressEndpoint {
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 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PackagingConfigurationId", &self.packaging_configuration_id)?;
798 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Url", &self.url)?;
799 ::serde::ser::SerializeMap::end(map)
800 }
801 }
802
803 impl ::codec::DeserializeValue for EgressEndpoint {
804 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<EgressEndpoint, D::Error> {
805 struct Visitor;
806
807 impl<'de> ::serde::de::Visitor<'de> for Visitor {
808 type Value = EgressEndpoint;
809
810 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
811 write!(f, "a struct of type EgressEndpoint")
812 }
813
814 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
815 let mut packaging_configuration_id: Option<::Value<String>> = None;
816 let mut url: Option<::Value<String>> = None;
817
818 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
819 match __cfn_key.as_ref() {
820 "PackagingConfigurationId" => {
821 packaging_configuration_id = ::serde::de::MapAccess::next_value(&mut map)?;
822 }
823 "Url" => {
824 url = ::serde::de::MapAccess::next_value(&mut map)?;
825 }
826 _ => {}
827 }
828 }
829
830 Ok(EgressEndpoint {
831 packaging_configuration_id: packaging_configuration_id.ok_or(::serde::de::Error::missing_field("PackagingConfigurationId"))?,
832 url: url.ok_or(::serde::de::Error::missing_field("Url"))?,
833 })
834 }
835 }
836
837 d.deserialize_map(Visitor)
838 }
839 }
840}
841
842pub mod channel {
843 #[derive(Debug, Default)]
847 pub struct LogConfiguration {
848 pub log_group_name: Option<::Value<String>>,
853 }
854
855 impl ::codec::SerializeValue for LogConfiguration {
856 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
857 let mut map = ::serde::Serializer::serialize_map(s, None)?;
858 if let Some(ref log_group_name) = self.log_group_name {
859 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogGroupName", log_group_name)?;
860 }
861 ::serde::ser::SerializeMap::end(map)
862 }
863 }
864
865 impl ::codec::DeserializeValue for LogConfiguration {
866 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<LogConfiguration, D::Error> {
867 struct Visitor;
868
869 impl<'de> ::serde::de::Visitor<'de> for Visitor {
870 type Value = LogConfiguration;
871
872 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
873 write!(f, "a struct of type LogConfiguration")
874 }
875
876 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
877 let mut log_group_name: Option<::Value<String>> = None;
878
879 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
880 match __cfn_key.as_ref() {
881 "LogGroupName" => {
882 log_group_name = ::serde::de::MapAccess::next_value(&mut map)?;
883 }
884 _ => {}
885 }
886 }
887
888 Ok(LogConfiguration {
889 log_group_name: log_group_name,
890 })
891 }
892 }
893
894 d.deserialize_map(Visitor)
895 }
896 }
897}
898
899pub mod origin_endpoint {
900 #[derive(Debug, Default)]
904 pub struct Authorization {
905 pub cdn_identifier_secret: ::Value<String>,
910 pub secrets_role_arn: ::Value<String>,
915 }
916
917 impl ::codec::SerializeValue for Authorization {
918 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
919 let mut map = ::serde::Serializer::serialize_map(s, None)?;
920 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CdnIdentifierSecret", &self.cdn_identifier_secret)?;
921 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SecretsRoleArn", &self.secrets_role_arn)?;
922 ::serde::ser::SerializeMap::end(map)
923 }
924 }
925
926 impl ::codec::DeserializeValue for Authorization {
927 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<Authorization, D::Error> {
928 struct Visitor;
929
930 impl<'de> ::serde::de::Visitor<'de> for Visitor {
931 type Value = Authorization;
932
933 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
934 write!(f, "a struct of type Authorization")
935 }
936
937 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
938 let mut cdn_identifier_secret: Option<::Value<String>> = None;
939 let mut secrets_role_arn: Option<::Value<String>> = None;
940
941 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
942 match __cfn_key.as_ref() {
943 "CdnIdentifierSecret" => {
944 cdn_identifier_secret = ::serde::de::MapAccess::next_value(&mut map)?;
945 }
946 "SecretsRoleArn" => {
947 secrets_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
948 }
949 _ => {}
950 }
951 }
952
953 Ok(Authorization {
954 cdn_identifier_secret: cdn_identifier_secret.ok_or(::serde::de::Error::missing_field("CdnIdentifierSecret"))?,
955 secrets_role_arn: secrets_role_arn.ok_or(::serde::de::Error::missing_field("SecretsRoleArn"))?,
956 })
957 }
958 }
959
960 d.deserialize_map(Visitor)
961 }
962 }
963
964 #[derive(Debug, Default)]
966 pub struct CmafEncryption {
967 pub constant_initialization_vector: Option<::Value<String>>,
972 pub key_rotation_interval_seconds: Option<::Value<u32>>,
977 pub speke_key_provider: ::Value<SpekeKeyProvider>,
982 }
983
984 impl ::codec::SerializeValue for CmafEncryption {
985 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
986 let mut map = ::serde::Serializer::serialize_map(s, None)?;
987 if let Some(ref constant_initialization_vector) = self.constant_initialization_vector {
988 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ConstantInitializationVector", constant_initialization_vector)?;
989 }
990 if let Some(ref key_rotation_interval_seconds) = self.key_rotation_interval_seconds {
991 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KeyRotationIntervalSeconds", key_rotation_interval_seconds)?;
992 }
993 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
994 ::serde::ser::SerializeMap::end(map)
995 }
996 }
997
998 impl ::codec::DeserializeValue for CmafEncryption {
999 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<CmafEncryption, D::Error> {
1000 struct Visitor;
1001
1002 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1003 type Value = CmafEncryption;
1004
1005 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1006 write!(f, "a struct of type CmafEncryption")
1007 }
1008
1009 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1010 let mut constant_initialization_vector: Option<::Value<String>> = None;
1011 let mut key_rotation_interval_seconds: Option<::Value<u32>> = None;
1012 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
1013
1014 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1015 match __cfn_key.as_ref() {
1016 "ConstantInitializationVector" => {
1017 constant_initialization_vector = ::serde::de::MapAccess::next_value(&mut map)?;
1018 }
1019 "KeyRotationIntervalSeconds" => {
1020 key_rotation_interval_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1021 }
1022 "SpekeKeyProvider" => {
1023 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
1024 }
1025 _ => {}
1026 }
1027 }
1028
1029 Ok(CmafEncryption {
1030 constant_initialization_vector: constant_initialization_vector,
1031 key_rotation_interval_seconds: key_rotation_interval_seconds,
1032 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
1033 })
1034 }
1035 }
1036
1037 d.deserialize_map(Visitor)
1038 }
1039 }
1040
1041 #[derive(Debug, Default)]
1043 pub struct CmafPackage {
1044 pub encryption: Option<::Value<CmafEncryption>>,
1049 pub hls_manifests: Option<::ValueList<HlsManifest>>,
1054 pub segment_duration_seconds: Option<::Value<u32>>,
1059 pub segment_prefix: Option<::Value<String>>,
1064 pub stream_selection: Option<::Value<StreamSelection>>,
1069 }
1070
1071 impl ::codec::SerializeValue for CmafPackage {
1072 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1073 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1074 if let Some(ref encryption) = self.encryption {
1075 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
1076 }
1077 if let Some(ref hls_manifests) = self.hls_manifests {
1078 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HlsManifests", hls_manifests)?;
1079 }
1080 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
1081 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
1082 }
1083 if let Some(ref segment_prefix) = self.segment_prefix {
1084 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentPrefix", segment_prefix)?;
1085 }
1086 if let Some(ref stream_selection) = self.stream_selection {
1087 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
1088 }
1089 ::serde::ser::SerializeMap::end(map)
1090 }
1091 }
1092
1093 impl ::codec::DeserializeValue for CmafPackage {
1094 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<CmafPackage, D::Error> {
1095 struct Visitor;
1096
1097 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1098 type Value = CmafPackage;
1099
1100 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1101 write!(f, "a struct of type CmafPackage")
1102 }
1103
1104 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1105 let mut encryption: Option<::Value<CmafEncryption>> = None;
1106 let mut hls_manifests: Option<::ValueList<HlsManifest>> = None;
1107 let mut segment_duration_seconds: Option<::Value<u32>> = None;
1108 let mut segment_prefix: Option<::Value<String>> = None;
1109 let mut stream_selection: Option<::Value<StreamSelection>> = None;
1110
1111 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1112 match __cfn_key.as_ref() {
1113 "Encryption" => {
1114 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
1115 }
1116 "HlsManifests" => {
1117 hls_manifests = ::serde::de::MapAccess::next_value(&mut map)?;
1118 }
1119 "SegmentDurationSeconds" => {
1120 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1121 }
1122 "SegmentPrefix" => {
1123 segment_prefix = ::serde::de::MapAccess::next_value(&mut map)?;
1124 }
1125 "StreamSelection" => {
1126 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
1127 }
1128 _ => {}
1129 }
1130 }
1131
1132 Ok(CmafPackage {
1133 encryption: encryption,
1134 hls_manifests: hls_manifests,
1135 segment_duration_seconds: segment_duration_seconds,
1136 segment_prefix: segment_prefix,
1137 stream_selection: stream_selection,
1138 })
1139 }
1140 }
1141
1142 d.deserialize_map(Visitor)
1143 }
1144 }
1145
1146 #[derive(Debug, Default)]
1148 pub struct DashEncryption {
1149 pub key_rotation_interval_seconds: Option<::Value<u32>>,
1154 pub speke_key_provider: ::Value<SpekeKeyProvider>,
1159 }
1160
1161 impl ::codec::SerializeValue for DashEncryption {
1162 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1163 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1164 if let Some(ref key_rotation_interval_seconds) = self.key_rotation_interval_seconds {
1165 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KeyRotationIntervalSeconds", key_rotation_interval_seconds)?;
1166 }
1167 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
1168 ::serde::ser::SerializeMap::end(map)
1169 }
1170 }
1171
1172 impl ::codec::DeserializeValue for DashEncryption {
1173 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DashEncryption, D::Error> {
1174 struct Visitor;
1175
1176 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1177 type Value = DashEncryption;
1178
1179 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1180 write!(f, "a struct of type DashEncryption")
1181 }
1182
1183 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1184 let mut key_rotation_interval_seconds: Option<::Value<u32>> = None;
1185 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
1186
1187 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1188 match __cfn_key.as_ref() {
1189 "KeyRotationIntervalSeconds" => {
1190 key_rotation_interval_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1191 }
1192 "SpekeKeyProvider" => {
1193 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
1194 }
1195 _ => {}
1196 }
1197 }
1198
1199 Ok(DashEncryption {
1200 key_rotation_interval_seconds: key_rotation_interval_seconds,
1201 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
1202 })
1203 }
1204 }
1205
1206 d.deserialize_map(Visitor)
1207 }
1208 }
1209
1210 #[derive(Debug, Default)]
1212 pub struct DashPackage {
1213 pub ad_triggers: Option<::ValueList<String>>,
1218 pub ads_on_delivery_restrictions: Option<::Value<String>>,
1223 pub encryption: Option<::Value<DashEncryption>>,
1228 pub manifest_layout: Option<::Value<String>>,
1233 pub manifest_window_seconds: Option<::Value<u32>>,
1238 pub min_buffer_time_seconds: Option<::Value<u32>>,
1243 pub min_update_period_seconds: Option<::Value<u32>>,
1248 pub period_triggers: Option<::ValueList<String>>,
1253 pub profile: Option<::Value<String>>,
1258 pub segment_duration_seconds: Option<::Value<u32>>,
1263 pub segment_template_format: Option<::Value<String>>,
1268 pub stream_selection: Option<::Value<StreamSelection>>,
1273 pub suggested_presentation_delay_seconds: Option<::Value<u32>>,
1278 pub utc_timing: Option<::Value<String>>,
1283 pub utc_timing_uri: Option<::Value<String>>,
1288 }
1289
1290 impl ::codec::SerializeValue for DashPackage {
1291 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1292 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1293 if let Some(ref ad_triggers) = self.ad_triggers {
1294 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdTriggers", ad_triggers)?;
1295 }
1296 if let Some(ref ads_on_delivery_restrictions) = self.ads_on_delivery_restrictions {
1297 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdsOnDeliveryRestrictions", ads_on_delivery_restrictions)?;
1298 }
1299 if let Some(ref encryption) = self.encryption {
1300 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
1301 }
1302 if let Some(ref manifest_layout) = self.manifest_layout {
1303 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestLayout", manifest_layout)?;
1304 }
1305 if let Some(ref manifest_window_seconds) = self.manifest_window_seconds {
1306 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestWindowSeconds", manifest_window_seconds)?;
1307 }
1308 if let Some(ref min_buffer_time_seconds) = self.min_buffer_time_seconds {
1309 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MinBufferTimeSeconds", min_buffer_time_seconds)?;
1310 }
1311 if let Some(ref min_update_period_seconds) = self.min_update_period_seconds {
1312 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MinUpdatePeriodSeconds", min_update_period_seconds)?;
1313 }
1314 if let Some(ref period_triggers) = self.period_triggers {
1315 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PeriodTriggers", period_triggers)?;
1316 }
1317 if let Some(ref profile) = self.profile {
1318 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Profile", profile)?;
1319 }
1320 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
1321 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
1322 }
1323 if let Some(ref segment_template_format) = self.segment_template_format {
1324 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentTemplateFormat", segment_template_format)?;
1325 }
1326 if let Some(ref stream_selection) = self.stream_selection {
1327 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
1328 }
1329 if let Some(ref suggested_presentation_delay_seconds) = self.suggested_presentation_delay_seconds {
1330 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SuggestedPresentationDelaySeconds", suggested_presentation_delay_seconds)?;
1331 }
1332 if let Some(ref utc_timing) = self.utc_timing {
1333 ::serde::ser::SerializeMap::serialize_entry(&mut map, "UtcTiming", utc_timing)?;
1334 }
1335 if let Some(ref utc_timing_uri) = self.utc_timing_uri {
1336 ::serde::ser::SerializeMap::serialize_entry(&mut map, "UtcTimingUri", utc_timing_uri)?;
1337 }
1338 ::serde::ser::SerializeMap::end(map)
1339 }
1340 }
1341
1342 impl ::codec::DeserializeValue for DashPackage {
1343 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DashPackage, D::Error> {
1344 struct Visitor;
1345
1346 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1347 type Value = DashPackage;
1348
1349 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1350 write!(f, "a struct of type DashPackage")
1351 }
1352
1353 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1354 let mut ad_triggers: Option<::ValueList<String>> = None;
1355 let mut ads_on_delivery_restrictions: Option<::Value<String>> = None;
1356 let mut encryption: Option<::Value<DashEncryption>> = None;
1357 let mut manifest_layout: Option<::Value<String>> = None;
1358 let mut manifest_window_seconds: Option<::Value<u32>> = None;
1359 let mut min_buffer_time_seconds: Option<::Value<u32>> = None;
1360 let mut min_update_period_seconds: Option<::Value<u32>> = None;
1361 let mut period_triggers: Option<::ValueList<String>> = None;
1362 let mut profile: Option<::Value<String>> = None;
1363 let mut segment_duration_seconds: Option<::Value<u32>> = None;
1364 let mut segment_template_format: Option<::Value<String>> = None;
1365 let mut stream_selection: Option<::Value<StreamSelection>> = None;
1366 let mut suggested_presentation_delay_seconds: Option<::Value<u32>> = None;
1367 let mut utc_timing: Option<::Value<String>> = None;
1368 let mut utc_timing_uri: Option<::Value<String>> = None;
1369
1370 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1371 match __cfn_key.as_ref() {
1372 "AdTriggers" => {
1373 ad_triggers = ::serde::de::MapAccess::next_value(&mut map)?;
1374 }
1375 "AdsOnDeliveryRestrictions" => {
1376 ads_on_delivery_restrictions = ::serde::de::MapAccess::next_value(&mut map)?;
1377 }
1378 "Encryption" => {
1379 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
1380 }
1381 "ManifestLayout" => {
1382 manifest_layout = ::serde::de::MapAccess::next_value(&mut map)?;
1383 }
1384 "ManifestWindowSeconds" => {
1385 manifest_window_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1386 }
1387 "MinBufferTimeSeconds" => {
1388 min_buffer_time_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1389 }
1390 "MinUpdatePeriodSeconds" => {
1391 min_update_period_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1392 }
1393 "PeriodTriggers" => {
1394 period_triggers = ::serde::de::MapAccess::next_value(&mut map)?;
1395 }
1396 "Profile" => {
1397 profile = ::serde::de::MapAccess::next_value(&mut map)?;
1398 }
1399 "SegmentDurationSeconds" => {
1400 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1401 }
1402 "SegmentTemplateFormat" => {
1403 segment_template_format = ::serde::de::MapAccess::next_value(&mut map)?;
1404 }
1405 "StreamSelection" => {
1406 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
1407 }
1408 "SuggestedPresentationDelaySeconds" => {
1409 suggested_presentation_delay_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1410 }
1411 "UtcTiming" => {
1412 utc_timing = ::serde::de::MapAccess::next_value(&mut map)?;
1413 }
1414 "UtcTimingUri" => {
1415 utc_timing_uri = ::serde::de::MapAccess::next_value(&mut map)?;
1416 }
1417 _ => {}
1418 }
1419 }
1420
1421 Ok(DashPackage {
1422 ad_triggers: ad_triggers,
1423 ads_on_delivery_restrictions: ads_on_delivery_restrictions,
1424 encryption: encryption,
1425 manifest_layout: manifest_layout,
1426 manifest_window_seconds: manifest_window_seconds,
1427 min_buffer_time_seconds: min_buffer_time_seconds,
1428 min_update_period_seconds: min_update_period_seconds,
1429 period_triggers: period_triggers,
1430 profile: profile,
1431 segment_duration_seconds: segment_duration_seconds,
1432 segment_template_format: segment_template_format,
1433 stream_selection: stream_selection,
1434 suggested_presentation_delay_seconds: suggested_presentation_delay_seconds,
1435 utc_timing: utc_timing,
1436 utc_timing_uri: utc_timing_uri,
1437 })
1438 }
1439 }
1440
1441 d.deserialize_map(Visitor)
1442 }
1443 }
1444
1445 #[derive(Debug, Default)]
1447 pub struct HlsEncryption {
1448 pub constant_initialization_vector: Option<::Value<String>>,
1453 pub encryption_method: Option<::Value<String>>,
1458 pub key_rotation_interval_seconds: Option<::Value<u32>>,
1463 pub repeat_ext_x_key: Option<::Value<bool>>,
1468 pub speke_key_provider: ::Value<SpekeKeyProvider>,
1473 }
1474
1475 impl ::codec::SerializeValue for HlsEncryption {
1476 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1477 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1478 if let Some(ref constant_initialization_vector) = self.constant_initialization_vector {
1479 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ConstantInitializationVector", constant_initialization_vector)?;
1480 }
1481 if let Some(ref encryption_method) = self.encryption_method {
1482 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EncryptionMethod", encryption_method)?;
1483 }
1484 if let Some(ref key_rotation_interval_seconds) = self.key_rotation_interval_seconds {
1485 ::serde::ser::SerializeMap::serialize_entry(&mut map, "KeyRotationIntervalSeconds", key_rotation_interval_seconds)?;
1486 }
1487 if let Some(ref repeat_ext_x_key) = self.repeat_ext_x_key {
1488 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RepeatExtXKey", repeat_ext_x_key)?;
1489 }
1490 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
1491 ::serde::ser::SerializeMap::end(map)
1492 }
1493 }
1494
1495 impl ::codec::DeserializeValue for HlsEncryption {
1496 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HlsEncryption, D::Error> {
1497 struct Visitor;
1498
1499 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1500 type Value = HlsEncryption;
1501
1502 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1503 write!(f, "a struct of type HlsEncryption")
1504 }
1505
1506 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1507 let mut constant_initialization_vector: Option<::Value<String>> = None;
1508 let mut encryption_method: Option<::Value<String>> = None;
1509 let mut key_rotation_interval_seconds: Option<::Value<u32>> = None;
1510 let mut repeat_ext_x_key: Option<::Value<bool>> = None;
1511 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
1512
1513 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1514 match __cfn_key.as_ref() {
1515 "ConstantInitializationVector" => {
1516 constant_initialization_vector = ::serde::de::MapAccess::next_value(&mut map)?;
1517 }
1518 "EncryptionMethod" => {
1519 encryption_method = ::serde::de::MapAccess::next_value(&mut map)?;
1520 }
1521 "KeyRotationIntervalSeconds" => {
1522 key_rotation_interval_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1523 }
1524 "RepeatExtXKey" => {
1525 repeat_ext_x_key = ::serde::de::MapAccess::next_value(&mut map)?;
1526 }
1527 "SpekeKeyProvider" => {
1528 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
1529 }
1530 _ => {}
1531 }
1532 }
1533
1534 Ok(HlsEncryption {
1535 constant_initialization_vector: constant_initialization_vector,
1536 encryption_method: encryption_method,
1537 key_rotation_interval_seconds: key_rotation_interval_seconds,
1538 repeat_ext_x_key: repeat_ext_x_key,
1539 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
1540 })
1541 }
1542 }
1543
1544 d.deserialize_map(Visitor)
1545 }
1546 }
1547
1548 #[derive(Debug, Default)]
1550 pub struct HlsManifest {
1551 pub ad_markers: Option<::Value<String>>,
1556 pub ad_triggers: Option<::ValueList<String>>,
1561 pub ads_on_delivery_restrictions: Option<::Value<String>>,
1566 pub id: ::Value<String>,
1571 pub include_iframe_only_stream: Option<::Value<bool>>,
1576 pub manifest_name: Option<::Value<String>>,
1581 pub playlist_type: Option<::Value<String>>,
1586 pub playlist_window_seconds: Option<::Value<u32>>,
1591 pub program_date_time_interval_seconds: Option<::Value<u32>>,
1596 pub url: Option<::Value<String>>,
1601 }
1602
1603 impl ::codec::SerializeValue for HlsManifest {
1604 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1605 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1606 if let Some(ref ad_markers) = self.ad_markers {
1607 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdMarkers", ad_markers)?;
1608 }
1609 if let Some(ref ad_triggers) = self.ad_triggers {
1610 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdTriggers", ad_triggers)?;
1611 }
1612 if let Some(ref ads_on_delivery_restrictions) = self.ads_on_delivery_restrictions {
1613 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdsOnDeliveryRestrictions", ads_on_delivery_restrictions)?;
1614 }
1615 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Id", &self.id)?;
1616 if let Some(ref include_iframe_only_stream) = self.include_iframe_only_stream {
1617 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IncludeIframeOnlyStream", include_iframe_only_stream)?;
1618 }
1619 if let Some(ref manifest_name) = self.manifest_name {
1620 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestName", manifest_name)?;
1621 }
1622 if let Some(ref playlist_type) = self.playlist_type {
1623 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PlaylistType", playlist_type)?;
1624 }
1625 if let Some(ref playlist_window_seconds) = self.playlist_window_seconds {
1626 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PlaylistWindowSeconds", playlist_window_seconds)?;
1627 }
1628 if let Some(ref program_date_time_interval_seconds) = self.program_date_time_interval_seconds {
1629 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProgramDateTimeIntervalSeconds", program_date_time_interval_seconds)?;
1630 }
1631 if let Some(ref url) = self.url {
1632 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Url", url)?;
1633 }
1634 ::serde::ser::SerializeMap::end(map)
1635 }
1636 }
1637
1638 impl ::codec::DeserializeValue for HlsManifest {
1639 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HlsManifest, D::Error> {
1640 struct Visitor;
1641
1642 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1643 type Value = HlsManifest;
1644
1645 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1646 write!(f, "a struct of type HlsManifest")
1647 }
1648
1649 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1650 let mut ad_markers: Option<::Value<String>> = None;
1651 let mut ad_triggers: Option<::ValueList<String>> = None;
1652 let mut ads_on_delivery_restrictions: Option<::Value<String>> = None;
1653 let mut id: Option<::Value<String>> = None;
1654 let mut include_iframe_only_stream: Option<::Value<bool>> = None;
1655 let mut manifest_name: Option<::Value<String>> = None;
1656 let mut playlist_type: Option<::Value<String>> = None;
1657 let mut playlist_window_seconds: Option<::Value<u32>> = None;
1658 let mut program_date_time_interval_seconds: Option<::Value<u32>> = None;
1659 let mut url: Option<::Value<String>> = None;
1660
1661 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1662 match __cfn_key.as_ref() {
1663 "AdMarkers" => {
1664 ad_markers = ::serde::de::MapAccess::next_value(&mut map)?;
1665 }
1666 "AdTriggers" => {
1667 ad_triggers = ::serde::de::MapAccess::next_value(&mut map)?;
1668 }
1669 "AdsOnDeliveryRestrictions" => {
1670 ads_on_delivery_restrictions = ::serde::de::MapAccess::next_value(&mut map)?;
1671 }
1672 "Id" => {
1673 id = ::serde::de::MapAccess::next_value(&mut map)?;
1674 }
1675 "IncludeIframeOnlyStream" => {
1676 include_iframe_only_stream = ::serde::de::MapAccess::next_value(&mut map)?;
1677 }
1678 "ManifestName" => {
1679 manifest_name = ::serde::de::MapAccess::next_value(&mut map)?;
1680 }
1681 "PlaylistType" => {
1682 playlist_type = ::serde::de::MapAccess::next_value(&mut map)?;
1683 }
1684 "PlaylistWindowSeconds" => {
1685 playlist_window_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1686 }
1687 "ProgramDateTimeIntervalSeconds" => {
1688 program_date_time_interval_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1689 }
1690 "Url" => {
1691 url = ::serde::de::MapAccess::next_value(&mut map)?;
1692 }
1693 _ => {}
1694 }
1695 }
1696
1697 Ok(HlsManifest {
1698 ad_markers: ad_markers,
1699 ad_triggers: ad_triggers,
1700 ads_on_delivery_restrictions: ads_on_delivery_restrictions,
1701 id: id.ok_or(::serde::de::Error::missing_field("Id"))?,
1702 include_iframe_only_stream: include_iframe_only_stream,
1703 manifest_name: manifest_name,
1704 playlist_type: playlist_type,
1705 playlist_window_seconds: playlist_window_seconds,
1706 program_date_time_interval_seconds: program_date_time_interval_seconds,
1707 url: url,
1708 })
1709 }
1710 }
1711
1712 d.deserialize_map(Visitor)
1713 }
1714 }
1715
1716 #[derive(Debug, Default)]
1718 pub struct HlsPackage {
1719 pub ad_markers: Option<::Value<String>>,
1724 pub ad_triggers: Option<::ValueList<String>>,
1729 pub ads_on_delivery_restrictions: Option<::Value<String>>,
1734 pub encryption: Option<::Value<HlsEncryption>>,
1739 pub include_iframe_only_stream: Option<::Value<bool>>,
1744 pub playlist_type: Option<::Value<String>>,
1749 pub playlist_window_seconds: Option<::Value<u32>>,
1754 pub program_date_time_interval_seconds: Option<::Value<u32>>,
1759 pub segment_duration_seconds: Option<::Value<u32>>,
1764 pub stream_selection: Option<::Value<StreamSelection>>,
1769 pub use_audio_rendition_group: Option<::Value<bool>>,
1774 }
1775
1776 impl ::codec::SerializeValue for HlsPackage {
1777 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1778 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1779 if let Some(ref ad_markers) = self.ad_markers {
1780 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdMarkers", ad_markers)?;
1781 }
1782 if let Some(ref ad_triggers) = self.ad_triggers {
1783 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdTriggers", ad_triggers)?;
1784 }
1785 if let Some(ref ads_on_delivery_restrictions) = self.ads_on_delivery_restrictions {
1786 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdsOnDeliveryRestrictions", ads_on_delivery_restrictions)?;
1787 }
1788 if let Some(ref encryption) = self.encryption {
1789 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
1790 }
1791 if let Some(ref include_iframe_only_stream) = self.include_iframe_only_stream {
1792 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IncludeIframeOnlyStream", include_iframe_only_stream)?;
1793 }
1794 if let Some(ref playlist_type) = self.playlist_type {
1795 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PlaylistType", playlist_type)?;
1796 }
1797 if let Some(ref playlist_window_seconds) = self.playlist_window_seconds {
1798 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PlaylistWindowSeconds", playlist_window_seconds)?;
1799 }
1800 if let Some(ref program_date_time_interval_seconds) = self.program_date_time_interval_seconds {
1801 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProgramDateTimeIntervalSeconds", program_date_time_interval_seconds)?;
1802 }
1803 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
1804 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
1805 }
1806 if let Some(ref stream_selection) = self.stream_selection {
1807 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
1808 }
1809 if let Some(ref use_audio_rendition_group) = self.use_audio_rendition_group {
1810 ::serde::ser::SerializeMap::serialize_entry(&mut map, "UseAudioRenditionGroup", use_audio_rendition_group)?;
1811 }
1812 ::serde::ser::SerializeMap::end(map)
1813 }
1814 }
1815
1816 impl ::codec::DeserializeValue for HlsPackage {
1817 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HlsPackage, D::Error> {
1818 struct Visitor;
1819
1820 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1821 type Value = HlsPackage;
1822
1823 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1824 write!(f, "a struct of type HlsPackage")
1825 }
1826
1827 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1828 let mut ad_markers: Option<::Value<String>> = None;
1829 let mut ad_triggers: Option<::ValueList<String>> = None;
1830 let mut ads_on_delivery_restrictions: Option<::Value<String>> = None;
1831 let mut encryption: Option<::Value<HlsEncryption>> = None;
1832 let mut include_iframe_only_stream: Option<::Value<bool>> = None;
1833 let mut playlist_type: Option<::Value<String>> = None;
1834 let mut playlist_window_seconds: Option<::Value<u32>> = None;
1835 let mut program_date_time_interval_seconds: Option<::Value<u32>> = None;
1836 let mut segment_duration_seconds: Option<::Value<u32>> = None;
1837 let mut stream_selection: Option<::Value<StreamSelection>> = None;
1838 let mut use_audio_rendition_group: Option<::Value<bool>> = None;
1839
1840 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1841 match __cfn_key.as_ref() {
1842 "AdMarkers" => {
1843 ad_markers = ::serde::de::MapAccess::next_value(&mut map)?;
1844 }
1845 "AdTriggers" => {
1846 ad_triggers = ::serde::de::MapAccess::next_value(&mut map)?;
1847 }
1848 "AdsOnDeliveryRestrictions" => {
1849 ads_on_delivery_restrictions = ::serde::de::MapAccess::next_value(&mut map)?;
1850 }
1851 "Encryption" => {
1852 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
1853 }
1854 "IncludeIframeOnlyStream" => {
1855 include_iframe_only_stream = ::serde::de::MapAccess::next_value(&mut map)?;
1856 }
1857 "PlaylistType" => {
1858 playlist_type = ::serde::de::MapAccess::next_value(&mut map)?;
1859 }
1860 "PlaylistWindowSeconds" => {
1861 playlist_window_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1862 }
1863 "ProgramDateTimeIntervalSeconds" => {
1864 program_date_time_interval_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1865 }
1866 "SegmentDurationSeconds" => {
1867 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
1868 }
1869 "StreamSelection" => {
1870 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
1871 }
1872 "UseAudioRenditionGroup" => {
1873 use_audio_rendition_group = ::serde::de::MapAccess::next_value(&mut map)?;
1874 }
1875 _ => {}
1876 }
1877 }
1878
1879 Ok(HlsPackage {
1880 ad_markers: ad_markers,
1881 ad_triggers: ad_triggers,
1882 ads_on_delivery_restrictions: ads_on_delivery_restrictions,
1883 encryption: encryption,
1884 include_iframe_only_stream: include_iframe_only_stream,
1885 playlist_type: playlist_type,
1886 playlist_window_seconds: playlist_window_seconds,
1887 program_date_time_interval_seconds: program_date_time_interval_seconds,
1888 segment_duration_seconds: segment_duration_seconds,
1889 stream_selection: stream_selection,
1890 use_audio_rendition_group: use_audio_rendition_group,
1891 })
1892 }
1893 }
1894
1895 d.deserialize_map(Visitor)
1896 }
1897 }
1898
1899 #[derive(Debug, Default)]
1901 pub struct MssEncryption {
1902 pub speke_key_provider: ::Value<SpekeKeyProvider>,
1907 }
1908
1909 impl ::codec::SerializeValue for MssEncryption {
1910 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1911 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1912 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
1913 ::serde::ser::SerializeMap::end(map)
1914 }
1915 }
1916
1917 impl ::codec::DeserializeValue for MssEncryption {
1918 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<MssEncryption, D::Error> {
1919 struct Visitor;
1920
1921 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1922 type Value = MssEncryption;
1923
1924 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1925 write!(f, "a struct of type MssEncryption")
1926 }
1927
1928 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
1929 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
1930
1931 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
1932 match __cfn_key.as_ref() {
1933 "SpekeKeyProvider" => {
1934 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
1935 }
1936 _ => {}
1937 }
1938 }
1939
1940 Ok(MssEncryption {
1941 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
1942 })
1943 }
1944 }
1945
1946 d.deserialize_map(Visitor)
1947 }
1948 }
1949
1950 #[derive(Debug, Default)]
1952 pub struct MssPackage {
1953 pub encryption: Option<::Value<MssEncryption>>,
1958 pub manifest_window_seconds: Option<::Value<u32>>,
1963 pub segment_duration_seconds: Option<::Value<u32>>,
1968 pub stream_selection: Option<::Value<StreamSelection>>,
1973 }
1974
1975 impl ::codec::SerializeValue for MssPackage {
1976 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
1977 let mut map = ::serde::Serializer::serialize_map(s, None)?;
1978 if let Some(ref encryption) = self.encryption {
1979 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
1980 }
1981 if let Some(ref manifest_window_seconds) = self.manifest_window_seconds {
1982 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestWindowSeconds", manifest_window_seconds)?;
1983 }
1984 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
1985 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
1986 }
1987 if let Some(ref stream_selection) = self.stream_selection {
1988 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
1989 }
1990 ::serde::ser::SerializeMap::end(map)
1991 }
1992 }
1993
1994 impl ::codec::DeserializeValue for MssPackage {
1995 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<MssPackage, D::Error> {
1996 struct Visitor;
1997
1998 impl<'de> ::serde::de::Visitor<'de> for Visitor {
1999 type Value = MssPackage;
2000
2001 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2002 write!(f, "a struct of type MssPackage")
2003 }
2004
2005 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2006 let mut encryption: Option<::Value<MssEncryption>> = None;
2007 let mut manifest_window_seconds: Option<::Value<u32>> = None;
2008 let mut segment_duration_seconds: Option<::Value<u32>> = None;
2009 let mut stream_selection: Option<::Value<StreamSelection>> = None;
2010
2011 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2012 match __cfn_key.as_ref() {
2013 "Encryption" => {
2014 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
2015 }
2016 "ManifestWindowSeconds" => {
2017 manifest_window_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2018 }
2019 "SegmentDurationSeconds" => {
2020 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2021 }
2022 "StreamSelection" => {
2023 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
2024 }
2025 _ => {}
2026 }
2027 }
2028
2029 Ok(MssPackage {
2030 encryption: encryption,
2031 manifest_window_seconds: manifest_window_seconds,
2032 segment_duration_seconds: segment_duration_seconds,
2033 stream_selection: stream_selection,
2034 })
2035 }
2036 }
2037
2038 d.deserialize_map(Visitor)
2039 }
2040 }
2041
2042 #[derive(Debug, Default)]
2044 pub struct SpekeKeyProvider {
2045 pub certificate_arn: Option<::Value<String>>,
2050 pub resource_id: ::Value<String>,
2055 pub role_arn: ::Value<String>,
2060 pub system_ids: ::ValueList<String>,
2065 pub url: ::Value<String>,
2070 }
2071
2072 impl ::codec::SerializeValue for SpekeKeyProvider {
2073 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2074 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2075 if let Some(ref certificate_arn) = self.certificate_arn {
2076 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CertificateArn", certificate_arn)?;
2077 }
2078 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ResourceId", &self.resource_id)?;
2079 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleArn", &self.role_arn)?;
2080 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SystemIds", &self.system_ids)?;
2081 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Url", &self.url)?;
2082 ::serde::ser::SerializeMap::end(map)
2083 }
2084 }
2085
2086 impl ::codec::DeserializeValue for SpekeKeyProvider {
2087 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<SpekeKeyProvider, D::Error> {
2088 struct Visitor;
2089
2090 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2091 type Value = SpekeKeyProvider;
2092
2093 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2094 write!(f, "a struct of type SpekeKeyProvider")
2095 }
2096
2097 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2098 let mut certificate_arn: Option<::Value<String>> = None;
2099 let mut resource_id: Option<::Value<String>> = None;
2100 let mut role_arn: Option<::Value<String>> = None;
2101 let mut system_ids: Option<::ValueList<String>> = None;
2102 let mut url: Option<::Value<String>> = None;
2103
2104 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2105 match __cfn_key.as_ref() {
2106 "CertificateArn" => {
2107 certificate_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2108 }
2109 "ResourceId" => {
2110 resource_id = ::serde::de::MapAccess::next_value(&mut map)?;
2111 }
2112 "RoleArn" => {
2113 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
2114 }
2115 "SystemIds" => {
2116 system_ids = ::serde::de::MapAccess::next_value(&mut map)?;
2117 }
2118 "Url" => {
2119 url = ::serde::de::MapAccess::next_value(&mut map)?;
2120 }
2121 _ => {}
2122 }
2123 }
2124
2125 Ok(SpekeKeyProvider {
2126 certificate_arn: certificate_arn,
2127 resource_id: resource_id.ok_or(::serde::de::Error::missing_field("ResourceId"))?,
2128 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleArn"))?,
2129 system_ids: system_ids.ok_or(::serde::de::Error::missing_field("SystemIds"))?,
2130 url: url.ok_or(::serde::de::Error::missing_field("Url"))?,
2131 })
2132 }
2133 }
2134
2135 d.deserialize_map(Visitor)
2136 }
2137 }
2138
2139 #[derive(Debug, Default)]
2141 pub struct StreamSelection {
2142 pub max_video_bits_per_second: Option<::Value<u32>>,
2147 pub min_video_bits_per_second: Option<::Value<u32>>,
2152 pub stream_order: Option<::Value<String>>,
2157 }
2158
2159 impl ::codec::SerializeValue for StreamSelection {
2160 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2161 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2162 if let Some(ref max_video_bits_per_second) = self.max_video_bits_per_second {
2163 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MaxVideoBitsPerSecond", max_video_bits_per_second)?;
2164 }
2165 if let Some(ref min_video_bits_per_second) = self.min_video_bits_per_second {
2166 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MinVideoBitsPerSecond", min_video_bits_per_second)?;
2167 }
2168 if let Some(ref stream_order) = self.stream_order {
2169 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamOrder", stream_order)?;
2170 }
2171 ::serde::ser::SerializeMap::end(map)
2172 }
2173 }
2174
2175 impl ::codec::DeserializeValue for StreamSelection {
2176 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<StreamSelection, D::Error> {
2177 struct Visitor;
2178
2179 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2180 type Value = StreamSelection;
2181
2182 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2183 write!(f, "a struct of type StreamSelection")
2184 }
2185
2186 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2187 let mut max_video_bits_per_second: Option<::Value<u32>> = None;
2188 let mut min_video_bits_per_second: Option<::Value<u32>> = None;
2189 let mut stream_order: Option<::Value<String>> = None;
2190
2191 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2192 match __cfn_key.as_ref() {
2193 "MaxVideoBitsPerSecond" => {
2194 max_video_bits_per_second = ::serde::de::MapAccess::next_value(&mut map)?;
2195 }
2196 "MinVideoBitsPerSecond" => {
2197 min_video_bits_per_second = ::serde::de::MapAccess::next_value(&mut map)?;
2198 }
2199 "StreamOrder" => {
2200 stream_order = ::serde::de::MapAccess::next_value(&mut map)?;
2201 }
2202 _ => {}
2203 }
2204 }
2205
2206 Ok(StreamSelection {
2207 max_video_bits_per_second: max_video_bits_per_second,
2208 min_video_bits_per_second: min_video_bits_per_second,
2209 stream_order: stream_order,
2210 })
2211 }
2212 }
2213
2214 d.deserialize_map(Visitor)
2215 }
2216 }
2217}
2218
2219pub mod packaging_configuration {
2220 #[derive(Debug, Default)]
2224 pub struct CmafEncryption {
2225 pub speke_key_provider: ::Value<SpekeKeyProvider>,
2230 }
2231
2232 impl ::codec::SerializeValue for CmafEncryption {
2233 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2234 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2235 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
2236 ::serde::ser::SerializeMap::end(map)
2237 }
2238 }
2239
2240 impl ::codec::DeserializeValue for CmafEncryption {
2241 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<CmafEncryption, D::Error> {
2242 struct Visitor;
2243
2244 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2245 type Value = CmafEncryption;
2246
2247 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2248 write!(f, "a struct of type CmafEncryption")
2249 }
2250
2251 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2252 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
2253
2254 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2255 match __cfn_key.as_ref() {
2256 "SpekeKeyProvider" => {
2257 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
2258 }
2259 _ => {}
2260 }
2261 }
2262
2263 Ok(CmafEncryption {
2264 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
2265 })
2266 }
2267 }
2268
2269 d.deserialize_map(Visitor)
2270 }
2271 }
2272
2273 #[derive(Debug, Default)]
2275 pub struct CmafPackage {
2276 pub encryption: Option<::Value<CmafEncryption>>,
2281 pub hls_manifests: ::ValueList<HlsManifest>,
2286 pub include_encoder_configuration_in_segments: Option<::Value<bool>>,
2291 pub segment_duration_seconds: Option<::Value<u32>>,
2296 }
2297
2298 impl ::codec::SerializeValue for CmafPackage {
2299 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2300 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2301 if let Some(ref encryption) = self.encryption {
2302 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
2303 }
2304 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HlsManifests", &self.hls_manifests)?;
2305 if let Some(ref include_encoder_configuration_in_segments) = self.include_encoder_configuration_in_segments {
2306 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IncludeEncoderConfigurationInSegments", include_encoder_configuration_in_segments)?;
2307 }
2308 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
2309 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
2310 }
2311 ::serde::ser::SerializeMap::end(map)
2312 }
2313 }
2314
2315 impl ::codec::DeserializeValue for CmafPackage {
2316 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<CmafPackage, D::Error> {
2317 struct Visitor;
2318
2319 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2320 type Value = CmafPackage;
2321
2322 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2323 write!(f, "a struct of type CmafPackage")
2324 }
2325
2326 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2327 let mut encryption: Option<::Value<CmafEncryption>> = None;
2328 let mut hls_manifests: Option<::ValueList<HlsManifest>> = None;
2329 let mut include_encoder_configuration_in_segments: Option<::Value<bool>> = None;
2330 let mut segment_duration_seconds: Option<::Value<u32>> = None;
2331
2332 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2333 match __cfn_key.as_ref() {
2334 "Encryption" => {
2335 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
2336 }
2337 "HlsManifests" => {
2338 hls_manifests = ::serde::de::MapAccess::next_value(&mut map)?;
2339 }
2340 "IncludeEncoderConfigurationInSegments" => {
2341 include_encoder_configuration_in_segments = ::serde::de::MapAccess::next_value(&mut map)?;
2342 }
2343 "SegmentDurationSeconds" => {
2344 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2345 }
2346 _ => {}
2347 }
2348 }
2349
2350 Ok(CmafPackage {
2351 encryption: encryption,
2352 hls_manifests: hls_manifests.ok_or(::serde::de::Error::missing_field("HlsManifests"))?,
2353 include_encoder_configuration_in_segments: include_encoder_configuration_in_segments,
2354 segment_duration_seconds: segment_duration_seconds,
2355 })
2356 }
2357 }
2358
2359 d.deserialize_map(Visitor)
2360 }
2361 }
2362
2363 #[derive(Debug, Default)]
2365 pub struct DashEncryption {
2366 pub speke_key_provider: ::Value<SpekeKeyProvider>,
2371 }
2372
2373 impl ::codec::SerializeValue for DashEncryption {
2374 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2375 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2376 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
2377 ::serde::ser::SerializeMap::end(map)
2378 }
2379 }
2380
2381 impl ::codec::DeserializeValue for DashEncryption {
2382 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DashEncryption, D::Error> {
2383 struct Visitor;
2384
2385 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2386 type Value = DashEncryption;
2387
2388 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2389 write!(f, "a struct of type DashEncryption")
2390 }
2391
2392 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2393 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
2394
2395 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2396 match __cfn_key.as_ref() {
2397 "SpekeKeyProvider" => {
2398 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
2399 }
2400 _ => {}
2401 }
2402 }
2403
2404 Ok(DashEncryption {
2405 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
2406 })
2407 }
2408 }
2409
2410 d.deserialize_map(Visitor)
2411 }
2412 }
2413
2414 #[derive(Debug, Default)]
2416 pub struct DashManifest {
2417 pub manifest_layout: Option<::Value<String>>,
2422 pub manifest_name: Option<::Value<String>>,
2427 pub min_buffer_time_seconds: Option<::Value<u32>>,
2432 pub profile: Option<::Value<String>>,
2437 pub stream_selection: Option<::Value<StreamSelection>>,
2442 }
2443
2444 impl ::codec::SerializeValue for DashManifest {
2445 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2446 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2447 if let Some(ref manifest_layout) = self.manifest_layout {
2448 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestLayout", manifest_layout)?;
2449 }
2450 if let Some(ref manifest_name) = self.manifest_name {
2451 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestName", manifest_name)?;
2452 }
2453 if let Some(ref min_buffer_time_seconds) = self.min_buffer_time_seconds {
2454 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MinBufferTimeSeconds", min_buffer_time_seconds)?;
2455 }
2456 if let Some(ref profile) = self.profile {
2457 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Profile", profile)?;
2458 }
2459 if let Some(ref stream_selection) = self.stream_selection {
2460 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
2461 }
2462 ::serde::ser::SerializeMap::end(map)
2463 }
2464 }
2465
2466 impl ::codec::DeserializeValue for DashManifest {
2467 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DashManifest, D::Error> {
2468 struct Visitor;
2469
2470 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2471 type Value = DashManifest;
2472
2473 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2474 write!(f, "a struct of type DashManifest")
2475 }
2476
2477 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2478 let mut manifest_layout: Option<::Value<String>> = None;
2479 let mut manifest_name: Option<::Value<String>> = None;
2480 let mut min_buffer_time_seconds: Option<::Value<u32>> = None;
2481 let mut profile: Option<::Value<String>> = None;
2482 let mut stream_selection: Option<::Value<StreamSelection>> = None;
2483
2484 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2485 match __cfn_key.as_ref() {
2486 "ManifestLayout" => {
2487 manifest_layout = ::serde::de::MapAccess::next_value(&mut map)?;
2488 }
2489 "ManifestName" => {
2490 manifest_name = ::serde::de::MapAccess::next_value(&mut map)?;
2491 }
2492 "MinBufferTimeSeconds" => {
2493 min_buffer_time_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2494 }
2495 "Profile" => {
2496 profile = ::serde::de::MapAccess::next_value(&mut map)?;
2497 }
2498 "StreamSelection" => {
2499 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
2500 }
2501 _ => {}
2502 }
2503 }
2504
2505 Ok(DashManifest {
2506 manifest_layout: manifest_layout,
2507 manifest_name: manifest_name,
2508 min_buffer_time_seconds: min_buffer_time_seconds,
2509 profile: profile,
2510 stream_selection: stream_selection,
2511 })
2512 }
2513 }
2514
2515 d.deserialize_map(Visitor)
2516 }
2517 }
2518
2519 #[derive(Debug, Default)]
2521 pub struct DashPackage {
2522 pub dash_manifests: ::ValueList<DashManifest>,
2527 pub encryption: Option<::Value<DashEncryption>>,
2532 pub include_encoder_configuration_in_segments: Option<::Value<bool>>,
2537 pub period_triggers: Option<::ValueList<String>>,
2542 pub segment_duration_seconds: Option<::Value<u32>>,
2547 pub segment_template_format: Option<::Value<String>>,
2552 }
2553
2554 impl ::codec::SerializeValue for DashPackage {
2555 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2556 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2557 ::serde::ser::SerializeMap::serialize_entry(&mut map, "DashManifests", &self.dash_manifests)?;
2558 if let Some(ref encryption) = self.encryption {
2559 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
2560 }
2561 if let Some(ref include_encoder_configuration_in_segments) = self.include_encoder_configuration_in_segments {
2562 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IncludeEncoderConfigurationInSegments", include_encoder_configuration_in_segments)?;
2563 }
2564 if let Some(ref period_triggers) = self.period_triggers {
2565 ::serde::ser::SerializeMap::serialize_entry(&mut map, "PeriodTriggers", period_triggers)?;
2566 }
2567 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
2568 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
2569 }
2570 if let Some(ref segment_template_format) = self.segment_template_format {
2571 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentTemplateFormat", segment_template_format)?;
2572 }
2573 ::serde::ser::SerializeMap::end(map)
2574 }
2575 }
2576
2577 impl ::codec::DeserializeValue for DashPackage {
2578 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<DashPackage, D::Error> {
2579 struct Visitor;
2580
2581 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2582 type Value = DashPackage;
2583
2584 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2585 write!(f, "a struct of type DashPackage")
2586 }
2587
2588 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2589 let mut dash_manifests: Option<::ValueList<DashManifest>> = None;
2590 let mut encryption: Option<::Value<DashEncryption>> = None;
2591 let mut include_encoder_configuration_in_segments: Option<::Value<bool>> = None;
2592 let mut period_triggers: Option<::ValueList<String>> = None;
2593 let mut segment_duration_seconds: Option<::Value<u32>> = None;
2594 let mut segment_template_format: Option<::Value<String>> = None;
2595
2596 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2597 match __cfn_key.as_ref() {
2598 "DashManifests" => {
2599 dash_manifests = ::serde::de::MapAccess::next_value(&mut map)?;
2600 }
2601 "Encryption" => {
2602 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
2603 }
2604 "IncludeEncoderConfigurationInSegments" => {
2605 include_encoder_configuration_in_segments = ::serde::de::MapAccess::next_value(&mut map)?;
2606 }
2607 "PeriodTriggers" => {
2608 period_triggers = ::serde::de::MapAccess::next_value(&mut map)?;
2609 }
2610 "SegmentDurationSeconds" => {
2611 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2612 }
2613 "SegmentTemplateFormat" => {
2614 segment_template_format = ::serde::de::MapAccess::next_value(&mut map)?;
2615 }
2616 _ => {}
2617 }
2618 }
2619
2620 Ok(DashPackage {
2621 dash_manifests: dash_manifests.ok_or(::serde::de::Error::missing_field("DashManifests"))?,
2622 encryption: encryption,
2623 include_encoder_configuration_in_segments: include_encoder_configuration_in_segments,
2624 period_triggers: period_triggers,
2625 segment_duration_seconds: segment_duration_seconds,
2626 segment_template_format: segment_template_format,
2627 })
2628 }
2629 }
2630
2631 d.deserialize_map(Visitor)
2632 }
2633 }
2634
2635 #[derive(Debug, Default)]
2637 pub struct HlsEncryption {
2638 pub constant_initialization_vector: Option<::Value<String>>,
2643 pub encryption_method: Option<::Value<String>>,
2648 pub speke_key_provider: ::Value<SpekeKeyProvider>,
2653 }
2654
2655 impl ::codec::SerializeValue for HlsEncryption {
2656 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2657 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2658 if let Some(ref constant_initialization_vector) = self.constant_initialization_vector {
2659 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ConstantInitializationVector", constant_initialization_vector)?;
2660 }
2661 if let Some(ref encryption_method) = self.encryption_method {
2662 ::serde::ser::SerializeMap::serialize_entry(&mut map, "EncryptionMethod", encryption_method)?;
2663 }
2664 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
2665 ::serde::ser::SerializeMap::end(map)
2666 }
2667 }
2668
2669 impl ::codec::DeserializeValue for HlsEncryption {
2670 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HlsEncryption, D::Error> {
2671 struct Visitor;
2672
2673 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2674 type Value = HlsEncryption;
2675
2676 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2677 write!(f, "a struct of type HlsEncryption")
2678 }
2679
2680 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2681 let mut constant_initialization_vector: Option<::Value<String>> = None;
2682 let mut encryption_method: Option<::Value<String>> = None;
2683 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
2684
2685 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2686 match __cfn_key.as_ref() {
2687 "ConstantInitializationVector" => {
2688 constant_initialization_vector = ::serde::de::MapAccess::next_value(&mut map)?;
2689 }
2690 "EncryptionMethod" => {
2691 encryption_method = ::serde::de::MapAccess::next_value(&mut map)?;
2692 }
2693 "SpekeKeyProvider" => {
2694 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
2695 }
2696 _ => {}
2697 }
2698 }
2699
2700 Ok(HlsEncryption {
2701 constant_initialization_vector: constant_initialization_vector,
2702 encryption_method: encryption_method,
2703 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
2704 })
2705 }
2706 }
2707
2708 d.deserialize_map(Visitor)
2709 }
2710 }
2711
2712 #[derive(Debug, Default)]
2714 pub struct HlsManifest {
2715 pub ad_markers: Option<::Value<String>>,
2720 pub include_iframe_only_stream: Option<::Value<bool>>,
2725 pub manifest_name: Option<::Value<String>>,
2730 pub program_date_time_interval_seconds: Option<::Value<u32>>,
2735 pub repeat_ext_x_key: Option<::Value<bool>>,
2740 pub stream_selection: Option<::Value<StreamSelection>>,
2745 }
2746
2747 impl ::codec::SerializeValue for HlsManifest {
2748 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2749 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2750 if let Some(ref ad_markers) = self.ad_markers {
2751 ::serde::ser::SerializeMap::serialize_entry(&mut map, "AdMarkers", ad_markers)?;
2752 }
2753 if let Some(ref include_iframe_only_stream) = self.include_iframe_only_stream {
2754 ::serde::ser::SerializeMap::serialize_entry(&mut map, "IncludeIframeOnlyStream", include_iframe_only_stream)?;
2755 }
2756 if let Some(ref manifest_name) = self.manifest_name {
2757 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestName", manifest_name)?;
2758 }
2759 if let Some(ref program_date_time_interval_seconds) = self.program_date_time_interval_seconds {
2760 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ProgramDateTimeIntervalSeconds", program_date_time_interval_seconds)?;
2761 }
2762 if let Some(ref repeat_ext_x_key) = self.repeat_ext_x_key {
2763 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RepeatExtXKey", repeat_ext_x_key)?;
2764 }
2765 if let Some(ref stream_selection) = self.stream_selection {
2766 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
2767 }
2768 ::serde::ser::SerializeMap::end(map)
2769 }
2770 }
2771
2772 impl ::codec::DeserializeValue for HlsManifest {
2773 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HlsManifest, D::Error> {
2774 struct Visitor;
2775
2776 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2777 type Value = HlsManifest;
2778
2779 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2780 write!(f, "a struct of type HlsManifest")
2781 }
2782
2783 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2784 let mut ad_markers: Option<::Value<String>> = None;
2785 let mut include_iframe_only_stream: Option<::Value<bool>> = None;
2786 let mut manifest_name: Option<::Value<String>> = None;
2787 let mut program_date_time_interval_seconds: Option<::Value<u32>> = None;
2788 let mut repeat_ext_x_key: Option<::Value<bool>> = None;
2789 let mut stream_selection: Option<::Value<StreamSelection>> = None;
2790
2791 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2792 match __cfn_key.as_ref() {
2793 "AdMarkers" => {
2794 ad_markers = ::serde::de::MapAccess::next_value(&mut map)?;
2795 }
2796 "IncludeIframeOnlyStream" => {
2797 include_iframe_only_stream = ::serde::de::MapAccess::next_value(&mut map)?;
2798 }
2799 "ManifestName" => {
2800 manifest_name = ::serde::de::MapAccess::next_value(&mut map)?;
2801 }
2802 "ProgramDateTimeIntervalSeconds" => {
2803 program_date_time_interval_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2804 }
2805 "RepeatExtXKey" => {
2806 repeat_ext_x_key = ::serde::de::MapAccess::next_value(&mut map)?;
2807 }
2808 "StreamSelection" => {
2809 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
2810 }
2811 _ => {}
2812 }
2813 }
2814
2815 Ok(HlsManifest {
2816 ad_markers: ad_markers,
2817 include_iframe_only_stream: include_iframe_only_stream,
2818 manifest_name: manifest_name,
2819 program_date_time_interval_seconds: program_date_time_interval_seconds,
2820 repeat_ext_x_key: repeat_ext_x_key,
2821 stream_selection: stream_selection,
2822 })
2823 }
2824 }
2825
2826 d.deserialize_map(Visitor)
2827 }
2828 }
2829
2830 #[derive(Debug, Default)]
2832 pub struct HlsPackage {
2833 pub encryption: Option<::Value<HlsEncryption>>,
2838 pub hls_manifests: ::ValueList<HlsManifest>,
2843 pub segment_duration_seconds: Option<::Value<u32>>,
2848 pub use_audio_rendition_group: Option<::Value<bool>>,
2853 }
2854
2855 impl ::codec::SerializeValue for HlsPackage {
2856 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2857 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2858 if let Some(ref encryption) = self.encryption {
2859 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
2860 }
2861 ::serde::ser::SerializeMap::serialize_entry(&mut map, "HlsManifests", &self.hls_manifests)?;
2862 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
2863 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
2864 }
2865 if let Some(ref use_audio_rendition_group) = self.use_audio_rendition_group {
2866 ::serde::ser::SerializeMap::serialize_entry(&mut map, "UseAudioRenditionGroup", use_audio_rendition_group)?;
2867 }
2868 ::serde::ser::SerializeMap::end(map)
2869 }
2870 }
2871
2872 impl ::codec::DeserializeValue for HlsPackage {
2873 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<HlsPackage, D::Error> {
2874 struct Visitor;
2875
2876 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2877 type Value = HlsPackage;
2878
2879 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2880 write!(f, "a struct of type HlsPackage")
2881 }
2882
2883 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2884 let mut encryption: Option<::Value<HlsEncryption>> = None;
2885 let mut hls_manifests: Option<::ValueList<HlsManifest>> = None;
2886 let mut segment_duration_seconds: Option<::Value<u32>> = None;
2887 let mut use_audio_rendition_group: Option<::Value<bool>> = None;
2888
2889 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2890 match __cfn_key.as_ref() {
2891 "Encryption" => {
2892 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
2893 }
2894 "HlsManifests" => {
2895 hls_manifests = ::serde::de::MapAccess::next_value(&mut map)?;
2896 }
2897 "SegmentDurationSeconds" => {
2898 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
2899 }
2900 "UseAudioRenditionGroup" => {
2901 use_audio_rendition_group = ::serde::de::MapAccess::next_value(&mut map)?;
2902 }
2903 _ => {}
2904 }
2905 }
2906
2907 Ok(HlsPackage {
2908 encryption: encryption,
2909 hls_manifests: hls_manifests.ok_or(::serde::de::Error::missing_field("HlsManifests"))?,
2910 segment_duration_seconds: segment_duration_seconds,
2911 use_audio_rendition_group: use_audio_rendition_group,
2912 })
2913 }
2914 }
2915
2916 d.deserialize_map(Visitor)
2917 }
2918 }
2919
2920 #[derive(Debug, Default)]
2922 pub struct MssEncryption {
2923 pub speke_key_provider: ::Value<SpekeKeyProvider>,
2928 }
2929
2930 impl ::codec::SerializeValue for MssEncryption {
2931 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2932 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2933 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SpekeKeyProvider", &self.speke_key_provider)?;
2934 ::serde::ser::SerializeMap::end(map)
2935 }
2936 }
2937
2938 impl ::codec::DeserializeValue for MssEncryption {
2939 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<MssEncryption, D::Error> {
2940 struct Visitor;
2941
2942 impl<'de> ::serde::de::Visitor<'de> for Visitor {
2943 type Value = MssEncryption;
2944
2945 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2946 write!(f, "a struct of type MssEncryption")
2947 }
2948
2949 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
2950 let mut speke_key_provider: Option<::Value<SpekeKeyProvider>> = None;
2951
2952 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
2953 match __cfn_key.as_ref() {
2954 "SpekeKeyProvider" => {
2955 speke_key_provider = ::serde::de::MapAccess::next_value(&mut map)?;
2956 }
2957 _ => {}
2958 }
2959 }
2960
2961 Ok(MssEncryption {
2962 speke_key_provider: speke_key_provider.ok_or(::serde::de::Error::missing_field("SpekeKeyProvider"))?,
2963 })
2964 }
2965 }
2966
2967 d.deserialize_map(Visitor)
2968 }
2969 }
2970
2971 #[derive(Debug, Default)]
2973 pub struct MssManifest {
2974 pub manifest_name: Option<::Value<String>>,
2979 pub stream_selection: Option<::Value<StreamSelection>>,
2984 }
2985
2986 impl ::codec::SerializeValue for MssManifest {
2987 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
2988 let mut map = ::serde::Serializer::serialize_map(s, None)?;
2989 if let Some(ref manifest_name) = self.manifest_name {
2990 ::serde::ser::SerializeMap::serialize_entry(&mut map, "ManifestName", manifest_name)?;
2991 }
2992 if let Some(ref stream_selection) = self.stream_selection {
2993 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamSelection", stream_selection)?;
2994 }
2995 ::serde::ser::SerializeMap::end(map)
2996 }
2997 }
2998
2999 impl ::codec::DeserializeValue for MssManifest {
3000 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<MssManifest, D::Error> {
3001 struct Visitor;
3002
3003 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3004 type Value = MssManifest;
3005
3006 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3007 write!(f, "a struct of type MssManifest")
3008 }
3009
3010 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3011 let mut manifest_name: Option<::Value<String>> = None;
3012 let mut stream_selection: Option<::Value<StreamSelection>> = None;
3013
3014 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3015 match __cfn_key.as_ref() {
3016 "ManifestName" => {
3017 manifest_name = ::serde::de::MapAccess::next_value(&mut map)?;
3018 }
3019 "StreamSelection" => {
3020 stream_selection = ::serde::de::MapAccess::next_value(&mut map)?;
3021 }
3022 _ => {}
3023 }
3024 }
3025
3026 Ok(MssManifest {
3027 manifest_name: manifest_name,
3028 stream_selection: stream_selection,
3029 })
3030 }
3031 }
3032
3033 d.deserialize_map(Visitor)
3034 }
3035 }
3036
3037 #[derive(Debug, Default)]
3039 pub struct MssPackage {
3040 pub encryption: Option<::Value<MssEncryption>>,
3045 pub mss_manifests: ::ValueList<MssManifest>,
3050 pub segment_duration_seconds: Option<::Value<u32>>,
3055 }
3056
3057 impl ::codec::SerializeValue for MssPackage {
3058 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3059 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3060 if let Some(ref encryption) = self.encryption {
3061 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Encryption", encryption)?;
3062 }
3063 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MssManifests", &self.mss_manifests)?;
3064 if let Some(ref segment_duration_seconds) = self.segment_duration_seconds {
3065 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SegmentDurationSeconds", segment_duration_seconds)?;
3066 }
3067 ::serde::ser::SerializeMap::end(map)
3068 }
3069 }
3070
3071 impl ::codec::DeserializeValue for MssPackage {
3072 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<MssPackage, D::Error> {
3073 struct Visitor;
3074
3075 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3076 type Value = MssPackage;
3077
3078 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3079 write!(f, "a struct of type MssPackage")
3080 }
3081
3082 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3083 let mut encryption: Option<::Value<MssEncryption>> = None;
3084 let mut mss_manifests: Option<::ValueList<MssManifest>> = None;
3085 let mut segment_duration_seconds: Option<::Value<u32>> = None;
3086
3087 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3088 match __cfn_key.as_ref() {
3089 "Encryption" => {
3090 encryption = ::serde::de::MapAccess::next_value(&mut map)?;
3091 }
3092 "MssManifests" => {
3093 mss_manifests = ::serde::de::MapAccess::next_value(&mut map)?;
3094 }
3095 "SegmentDurationSeconds" => {
3096 segment_duration_seconds = ::serde::de::MapAccess::next_value(&mut map)?;
3097 }
3098 _ => {}
3099 }
3100 }
3101
3102 Ok(MssPackage {
3103 encryption: encryption,
3104 mss_manifests: mss_manifests.ok_or(::serde::de::Error::missing_field("MssManifests"))?,
3105 segment_duration_seconds: segment_duration_seconds,
3106 })
3107 }
3108 }
3109
3110 d.deserialize_map(Visitor)
3111 }
3112 }
3113
3114 #[derive(Debug, Default)]
3116 pub struct SpekeKeyProvider {
3117 pub role_arn: ::Value<String>,
3122 pub system_ids: ::ValueList<String>,
3127 pub url: ::Value<String>,
3132 }
3133
3134 impl ::codec::SerializeValue for SpekeKeyProvider {
3135 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3136 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3137 ::serde::ser::SerializeMap::serialize_entry(&mut map, "RoleArn", &self.role_arn)?;
3138 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SystemIds", &self.system_ids)?;
3139 ::serde::ser::SerializeMap::serialize_entry(&mut map, "Url", &self.url)?;
3140 ::serde::ser::SerializeMap::end(map)
3141 }
3142 }
3143
3144 impl ::codec::DeserializeValue for SpekeKeyProvider {
3145 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<SpekeKeyProvider, D::Error> {
3146 struct Visitor;
3147
3148 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3149 type Value = SpekeKeyProvider;
3150
3151 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3152 write!(f, "a struct of type SpekeKeyProvider")
3153 }
3154
3155 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3156 let mut role_arn: Option<::Value<String>> = None;
3157 let mut system_ids: Option<::ValueList<String>> = None;
3158 let mut url: Option<::Value<String>> = None;
3159
3160 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3161 match __cfn_key.as_ref() {
3162 "RoleArn" => {
3163 role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
3164 }
3165 "SystemIds" => {
3166 system_ids = ::serde::de::MapAccess::next_value(&mut map)?;
3167 }
3168 "Url" => {
3169 url = ::serde::de::MapAccess::next_value(&mut map)?;
3170 }
3171 _ => {}
3172 }
3173 }
3174
3175 Ok(SpekeKeyProvider {
3176 role_arn: role_arn.ok_or(::serde::de::Error::missing_field("RoleArn"))?,
3177 system_ids: system_ids.ok_or(::serde::de::Error::missing_field("SystemIds"))?,
3178 url: url.ok_or(::serde::de::Error::missing_field("Url"))?,
3179 })
3180 }
3181 }
3182
3183 d.deserialize_map(Visitor)
3184 }
3185 }
3186
3187 #[derive(Debug, Default)]
3189 pub struct StreamSelection {
3190 pub max_video_bits_per_second: Option<::Value<u32>>,
3195 pub min_video_bits_per_second: Option<::Value<u32>>,
3200 pub stream_order: Option<::Value<String>>,
3205 }
3206
3207 impl ::codec::SerializeValue for StreamSelection {
3208 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3209 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3210 if let Some(ref max_video_bits_per_second) = self.max_video_bits_per_second {
3211 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MaxVideoBitsPerSecond", max_video_bits_per_second)?;
3212 }
3213 if let Some(ref min_video_bits_per_second) = self.min_video_bits_per_second {
3214 ::serde::ser::SerializeMap::serialize_entry(&mut map, "MinVideoBitsPerSecond", min_video_bits_per_second)?;
3215 }
3216 if let Some(ref stream_order) = self.stream_order {
3217 ::serde::ser::SerializeMap::serialize_entry(&mut map, "StreamOrder", stream_order)?;
3218 }
3219 ::serde::ser::SerializeMap::end(map)
3220 }
3221 }
3222
3223 impl ::codec::DeserializeValue for StreamSelection {
3224 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<StreamSelection, D::Error> {
3225 struct Visitor;
3226
3227 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3228 type Value = StreamSelection;
3229
3230 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3231 write!(f, "a struct of type StreamSelection")
3232 }
3233
3234 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3235 let mut max_video_bits_per_second: Option<::Value<u32>> = None;
3236 let mut min_video_bits_per_second: Option<::Value<u32>> = None;
3237 let mut stream_order: Option<::Value<String>> = None;
3238
3239 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3240 match __cfn_key.as_ref() {
3241 "MaxVideoBitsPerSecond" => {
3242 max_video_bits_per_second = ::serde::de::MapAccess::next_value(&mut map)?;
3243 }
3244 "MinVideoBitsPerSecond" => {
3245 min_video_bits_per_second = ::serde::de::MapAccess::next_value(&mut map)?;
3246 }
3247 "StreamOrder" => {
3248 stream_order = ::serde::de::MapAccess::next_value(&mut map)?;
3249 }
3250 _ => {}
3251 }
3252 }
3253
3254 Ok(StreamSelection {
3255 max_video_bits_per_second: max_video_bits_per_second,
3256 min_video_bits_per_second: min_video_bits_per_second,
3257 stream_order: stream_order,
3258 })
3259 }
3260 }
3261
3262 d.deserialize_map(Visitor)
3263 }
3264 }
3265}
3266
3267pub mod packaging_group {
3268 #[derive(Debug, Default)]
3272 pub struct Authorization {
3273 pub cdn_identifier_secret: ::Value<String>,
3278 pub secrets_role_arn: ::Value<String>,
3283 }
3284
3285 impl ::codec::SerializeValue for Authorization {
3286 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3287 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3288 ::serde::ser::SerializeMap::serialize_entry(&mut map, "CdnIdentifierSecret", &self.cdn_identifier_secret)?;
3289 ::serde::ser::SerializeMap::serialize_entry(&mut map, "SecretsRoleArn", &self.secrets_role_arn)?;
3290 ::serde::ser::SerializeMap::end(map)
3291 }
3292 }
3293
3294 impl ::codec::DeserializeValue for Authorization {
3295 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<Authorization, D::Error> {
3296 struct Visitor;
3297
3298 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3299 type Value = Authorization;
3300
3301 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3302 write!(f, "a struct of type Authorization")
3303 }
3304
3305 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3306 let mut cdn_identifier_secret: Option<::Value<String>> = None;
3307 let mut secrets_role_arn: Option<::Value<String>> = None;
3308
3309 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3310 match __cfn_key.as_ref() {
3311 "CdnIdentifierSecret" => {
3312 cdn_identifier_secret = ::serde::de::MapAccess::next_value(&mut map)?;
3313 }
3314 "SecretsRoleArn" => {
3315 secrets_role_arn = ::serde::de::MapAccess::next_value(&mut map)?;
3316 }
3317 _ => {}
3318 }
3319 }
3320
3321 Ok(Authorization {
3322 cdn_identifier_secret: cdn_identifier_secret.ok_or(::serde::de::Error::missing_field("CdnIdentifierSecret"))?,
3323 secrets_role_arn: secrets_role_arn.ok_or(::serde::de::Error::missing_field("SecretsRoleArn"))?,
3324 })
3325 }
3326 }
3327
3328 d.deserialize_map(Visitor)
3329 }
3330 }
3331
3332 #[derive(Debug, Default)]
3334 pub struct LogConfiguration {
3335 pub log_group_name: Option<::Value<String>>,
3340 }
3341
3342 impl ::codec::SerializeValue for LogConfiguration {
3343 fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
3344 let mut map = ::serde::Serializer::serialize_map(s, None)?;
3345 if let Some(ref log_group_name) = self.log_group_name {
3346 ::serde::ser::SerializeMap::serialize_entry(&mut map, "LogGroupName", log_group_name)?;
3347 }
3348 ::serde::ser::SerializeMap::end(map)
3349 }
3350 }
3351
3352 impl ::codec::DeserializeValue for LogConfiguration {
3353 fn deserialize<'de, D: ::serde::Deserializer<'de>>(d: D) -> Result<LogConfiguration, D::Error> {
3354 struct Visitor;
3355
3356 impl<'de> ::serde::de::Visitor<'de> for Visitor {
3357 type Value = LogConfiguration;
3358
3359 fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
3360 write!(f, "a struct of type LogConfiguration")
3361 }
3362
3363 fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
3364 let mut log_group_name: Option<::Value<String>> = None;
3365
3366 while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
3367 match __cfn_key.as_ref() {
3368 "LogGroupName" => {
3369 log_group_name = ::serde::de::MapAccess::next_value(&mut map)?;
3370 }
3371 _ => {}
3372 }
3373 }
3374
3375 Ok(LogConfiguration {
3376 log_group_name: log_group_name,
3377 })
3378 }
3379 }
3380
3381 d.deserialize_map(Visitor)
3382 }
3383 }
3384}