1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
15#[serde(tag = "objectType")]
16pub enum AbstractBookingPart {
17 #[serde(rename="Admission")]
18 Admission {
19 #[serde(rename = "id")]
20 id: String,
21 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
22 summary: Option<String>,
23 #[serde(rename = "createdOn")]
25 created_on: String,
26 #[serde(rename = "confirmableUntil", skip_serializing_if = "Option::is_none")]
28 confirmable_until: Option<String>,
29 #[serde(rename = "validFrom")]
30 valid_from: String,
31 #[serde(rename = "validUntil", skip_serializing_if = "Option::is_none")]
33 valid_until: Option<String>,
34 #[serde(rename = "confirmedOn", skip_serializing_if = "Option::is_none")]
35 confirmed_on: Option<String>,
36 #[serde(rename = "confirmedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
37 confirmed_fulfillment_options: Option<Box<models::FulfillmentOption>>,
38 #[serde(rename = "price")]
39 price: Box<models::Price>,
40 #[serde(rename = "refundAmount", skip_serializing_if = "Option::is_none")]
41 refund_amount: Option<Box<models::Price>>,
42 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
43 trip_coverage: Option<Box<models::TripCoverage>>,
44 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
45 inbound_trip_coverage: Option<Box<models::TripCoverage>>,
46 #[serde(rename = "summaryProductId", skip_serializing_if = "Option::is_none")]
48 summary_product_id: Option<String>,
49 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
51 products: Option<Vec<models::ProductLegAssociation>>,
52 #[serde(rename = "status")]
53 status: models::BookingPartStatus,
54 #[serde(rename = "pricingStatus", skip_serializing_if = "Option::is_none")]
56 pricing_status: Option<String>,
57 #[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
58 offer_mode: Option<models::OfferMode>,
59 #[serde(rename = "bookingPartCode", skip_serializing_if = "Option::is_none")]
61 booking_part_code: Option<String>,
62 #[serde(rename = "distributorBookingRef", skip_serializing_if = "Option::is_none")]
64 distributor_booking_ref: Option<String>,
65 #[serde(rename = "retailerBookingRef", skip_serializing_if = "Option::is_none")]
67 retailer_booking_ref: Option<String>,
68 #[serde(rename = "passengerIds")]
70 passenger_ids: Vec<String>,
71 #[serde(rename = "availableFulfillmentOptions", skip_serializing_if = "Option::is_none")]
72 available_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
73 #[serde(rename = "refundable")]
74 refundable: models::RefundType,
75 #[serde(rename = "exchangeable")]
76 exchangeable: models::ExchangeableType,
77 #[serde(rename = "afterSaleConditions", skip_serializing_if = "Option::is_none")]
79 after_sale_conditions: Option<Vec<models::AfterSaleCondition>>,
80 #[serde(rename = "afterSalesOverrideDetails", skip_serializing_if = "Option::is_none")]
81 after_sales_override_details: Option<Box<models::AfterSalesOverrideDetails>>,
82 #[serde(rename = "appliedCorporateCodes", skip_serializing_if = "Option::is_none")]
83 applied_corporate_codes: Option<Vec<models::CorporateCode>>,
84 #[serde(rename = "appliedPassengerTypes", skip_serializing_if = "Option::is_none")]
85 applied_passenger_types: Option<Vec<models::AppliedPassengerType>>,
86 #[serde(rename = "appliedPromotionCodes", skip_serializing_if = "Option::is_none")]
87 applied_promotion_codes: Option<Vec<models::PromotionCode>>,
88 #[serde(rename = "appliedReductions", skip_serializing_if = "Option::is_none")]
89 applied_reductions: Option<Vec<models::CardReference>>,
90 #[serde(rename = "indicatedConsumption", skip_serializing_if = "Option::is_none")]
91 indicated_consumption: Option<Box<models::IndicatedConsumption>>,
92 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
93 accounting_ref: Option<Box<models::AccountingRef>>,
94 #[serde(rename = "grantedReductionAmounts", skip_serializing_if = "Option::is_none")]
95 granted_reduction_amounts: Option<Box<models::GrantedReductionAmounts>>,
96 },
97 #[serde(rename="Ancillary")]
98 Ancillary {
99 #[serde(rename = "id")]
100 id: String,
101 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
102 summary: Option<String>,
103 #[serde(rename = "createdOn")]
105 created_on: String,
106 #[serde(rename = "confirmableUntil", skip_serializing_if = "Option::is_none")]
108 confirmable_until: Option<String>,
109 #[serde(rename = "validFrom")]
110 valid_from: String,
111 #[serde(rename = "validUntil", skip_serializing_if = "Option::is_none")]
113 valid_until: Option<String>,
114 #[serde(rename = "confirmedOn", skip_serializing_if = "Option::is_none")]
115 confirmed_on: Option<String>,
116 #[serde(rename = "confirmedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
117 confirmed_fulfillment_options: Option<Box<models::FulfillmentOption>>,
118 #[serde(rename = "price")]
119 price: Box<models::Price>,
120 #[serde(rename = "refundAmount", skip_serializing_if = "Option::is_none")]
121 refund_amount: Option<Box<models::Price>>,
122 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
123 trip_coverage: Option<Box<models::TripCoverage>>,
124 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
125 inbound_trip_coverage: Option<Box<models::TripCoverage>>,
126 #[serde(rename = "summaryProductId", skip_serializing_if = "Option::is_none")]
128 summary_product_id: Option<String>,
129 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
131 products: Option<Vec<models::ProductLegAssociation>>,
132 #[serde(rename = "status")]
133 status: models::BookingPartStatus,
134 #[serde(rename = "pricingStatus", skip_serializing_if = "Option::is_none")]
136 pricing_status: Option<String>,
137 #[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
138 offer_mode: Option<models::OfferMode>,
139 #[serde(rename = "bookingPartCode", skip_serializing_if = "Option::is_none")]
141 booking_part_code: Option<String>,
142 #[serde(rename = "distributorBookingRef", skip_serializing_if = "Option::is_none")]
144 distributor_booking_ref: Option<String>,
145 #[serde(rename = "retailerBookingRef", skip_serializing_if = "Option::is_none")]
147 retailer_booking_ref: Option<String>,
148 #[serde(rename = "passengerIds")]
150 passenger_ids: Vec<String>,
151 #[serde(rename = "availableFulfillmentOptions", skip_serializing_if = "Option::is_none")]
152 available_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
153 #[serde(rename = "refundable")]
154 refundable: models::RefundType,
155 #[serde(rename = "exchangeable")]
156 exchangeable: models::ExchangeableType,
157 #[serde(rename = "afterSaleConditions", skip_serializing_if = "Option::is_none")]
159 after_sale_conditions: Option<Vec<models::AfterSaleCondition>>,
160 #[serde(rename = "afterSalesOverrideDetails", skip_serializing_if = "Option::is_none")]
161 after_sales_override_details: Option<Box<models::AfterSalesOverrideDetails>>,
162 #[serde(rename = "appliedCorporateCodes", skip_serializing_if = "Option::is_none")]
163 applied_corporate_codes: Option<Vec<models::CorporateCode>>,
164 #[serde(rename = "appliedPassengerTypes", skip_serializing_if = "Option::is_none")]
165 applied_passenger_types: Option<Vec<models::AppliedPassengerType>>,
166 #[serde(rename = "appliedPromotionCodes", skip_serializing_if = "Option::is_none")]
167 applied_promotion_codes: Option<Vec<models::PromotionCode>>,
168 #[serde(rename = "appliedReductions", skip_serializing_if = "Option::is_none")]
169 applied_reductions: Option<Vec<models::CardReference>>,
170 #[serde(rename = "indicatedConsumption", skip_serializing_if = "Option::is_none")]
171 indicated_consumption: Option<Box<models::IndicatedConsumption>>,
172 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
173 accounting_ref: Option<Box<models::AccountingRef>>,
174 #[serde(rename = "grantedReductionAmounts", skip_serializing_if = "Option::is_none")]
175 granted_reduction_amounts: Option<Box<models::GrantedReductionAmounts>>,
176 },
177 #[serde(rename="ContinuousServiceBookingPart")]
178 ContinuousServiceBookingPart {
179 #[serde(rename = "id")]
180 id: String,
181 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
182 summary: Option<String>,
183 #[serde(rename = "createdOn")]
185 created_on: String,
186 #[serde(rename = "confirmableUntil", skip_serializing_if = "Option::is_none")]
188 confirmable_until: Option<String>,
189 #[serde(rename = "validFrom")]
190 valid_from: String,
191 #[serde(rename = "validUntil", skip_serializing_if = "Option::is_none")]
193 valid_until: Option<String>,
194 #[serde(rename = "confirmedOn", skip_serializing_if = "Option::is_none")]
195 confirmed_on: Option<String>,
196 #[serde(rename = "confirmedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
197 confirmed_fulfillment_options: Option<Box<models::FulfillmentOption>>,
198 #[serde(rename = "price")]
199 price: Box<models::Price>,
200 #[serde(rename = "refundAmount", skip_serializing_if = "Option::is_none")]
201 refund_amount: Option<Box<models::Price>>,
202 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
203 trip_coverage: Option<Box<models::TripCoverage>>,
204 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
205 inbound_trip_coverage: Option<Box<models::TripCoverage>>,
206 #[serde(rename = "summaryProductId", skip_serializing_if = "Option::is_none")]
208 summary_product_id: Option<String>,
209 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
211 products: Option<Vec<models::ProductLegAssociation>>,
212 #[serde(rename = "status")]
213 status: models::BookingPartStatus,
214 #[serde(rename = "pricingStatus", skip_serializing_if = "Option::is_none")]
216 pricing_status: Option<String>,
217 #[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
218 offer_mode: Option<models::OfferMode>,
219 #[serde(rename = "bookingPartCode", skip_serializing_if = "Option::is_none")]
221 booking_part_code: Option<String>,
222 #[serde(rename = "distributorBookingRef", skip_serializing_if = "Option::is_none")]
224 distributor_booking_ref: Option<String>,
225 #[serde(rename = "retailerBookingRef", skip_serializing_if = "Option::is_none")]
227 retailer_booking_ref: Option<String>,
228 #[serde(rename = "passengerIds")]
230 passenger_ids: Vec<String>,
231 #[serde(rename = "availableFulfillmentOptions", skip_serializing_if = "Option::is_none")]
232 available_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
233 #[serde(rename = "refundable")]
234 refundable: models::RefundType,
235 #[serde(rename = "exchangeable")]
236 exchangeable: models::ExchangeableType,
237 #[serde(rename = "afterSaleConditions", skip_serializing_if = "Option::is_none")]
239 after_sale_conditions: Option<Vec<models::AfterSaleCondition>>,
240 #[serde(rename = "afterSalesOverrideDetails", skip_serializing_if = "Option::is_none")]
241 after_sales_override_details: Option<Box<models::AfterSalesOverrideDetails>>,
242 #[serde(rename = "appliedCorporateCodes", skip_serializing_if = "Option::is_none")]
243 applied_corporate_codes: Option<Vec<models::CorporateCode>>,
244 #[serde(rename = "appliedPassengerTypes", skip_serializing_if = "Option::is_none")]
245 applied_passenger_types: Option<Vec<models::AppliedPassengerType>>,
246 #[serde(rename = "appliedPromotionCodes", skip_serializing_if = "Option::is_none")]
247 applied_promotion_codes: Option<Vec<models::PromotionCode>>,
248 #[serde(rename = "appliedReductions", skip_serializing_if = "Option::is_none")]
249 applied_reductions: Option<Vec<models::CardReference>>,
250 #[serde(rename = "indicatedConsumption", skip_serializing_if = "Option::is_none")]
251 indicated_consumption: Option<Box<models::IndicatedConsumption>>,
252 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
253 accounting_ref: Option<Box<models::AccountingRef>>,
254 #[serde(rename = "grantedReductionAmounts", skip_serializing_if = "Option::is_none")]
255 granted_reduction_amounts: Option<Box<models::GrantedReductionAmounts>>,
256 },
257 #[serde(rename="ContinuousServiceOfferPart")]
258 ContinuousServiceOfferPart {
259 #[serde(rename = "id")]
260 id: String,
261 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
262 summary: Option<String>,
263 #[serde(rename = "createdOn")]
265 created_on: String,
266 #[serde(rename = "confirmableUntil", skip_serializing_if = "Option::is_none")]
268 confirmable_until: Option<String>,
269 #[serde(rename = "validFrom")]
270 valid_from: String,
271 #[serde(rename = "validUntil", skip_serializing_if = "Option::is_none")]
273 valid_until: Option<String>,
274 #[serde(rename = "confirmedOn", skip_serializing_if = "Option::is_none")]
275 confirmed_on: Option<String>,
276 #[serde(rename = "confirmedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
277 confirmed_fulfillment_options: Option<Box<models::FulfillmentOption>>,
278 #[serde(rename = "price")]
279 price: Box<models::Price>,
280 #[serde(rename = "refundAmount", skip_serializing_if = "Option::is_none")]
281 refund_amount: Option<Box<models::Price>>,
282 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
283 trip_coverage: Option<Box<models::TripCoverage>>,
284 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
285 inbound_trip_coverage: Option<Box<models::TripCoverage>>,
286 #[serde(rename = "summaryProductId", skip_serializing_if = "Option::is_none")]
288 summary_product_id: Option<String>,
289 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
291 products: Option<Vec<models::ProductLegAssociation>>,
292 #[serde(rename = "status")]
293 status: models::BookingPartStatus,
294 #[serde(rename = "pricingStatus", skip_serializing_if = "Option::is_none")]
296 pricing_status: Option<String>,
297 #[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
298 offer_mode: Option<models::OfferMode>,
299 #[serde(rename = "bookingPartCode", skip_serializing_if = "Option::is_none")]
301 booking_part_code: Option<String>,
302 #[serde(rename = "distributorBookingRef", skip_serializing_if = "Option::is_none")]
304 distributor_booking_ref: Option<String>,
305 #[serde(rename = "retailerBookingRef", skip_serializing_if = "Option::is_none")]
307 retailer_booking_ref: Option<String>,
308 #[serde(rename = "passengerIds")]
310 passenger_ids: Vec<String>,
311 #[serde(rename = "availableFulfillmentOptions", skip_serializing_if = "Option::is_none")]
312 available_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
313 #[serde(rename = "refundable")]
314 refundable: models::RefundType,
315 #[serde(rename = "exchangeable")]
316 exchangeable: models::ExchangeableType,
317 #[serde(rename = "afterSaleConditions", skip_serializing_if = "Option::is_none")]
319 after_sale_conditions: Option<Vec<models::AfterSaleCondition>>,
320 #[serde(rename = "afterSalesOverrideDetails", skip_serializing_if = "Option::is_none")]
321 after_sales_override_details: Option<Box<models::AfterSalesOverrideDetails>>,
322 #[serde(rename = "appliedCorporateCodes", skip_serializing_if = "Option::is_none")]
323 applied_corporate_codes: Option<Vec<models::CorporateCode>>,
324 #[serde(rename = "appliedPassengerTypes", skip_serializing_if = "Option::is_none")]
325 applied_passenger_types: Option<Vec<models::AppliedPassengerType>>,
326 #[serde(rename = "appliedPromotionCodes", skip_serializing_if = "Option::is_none")]
327 applied_promotion_codes: Option<Vec<models::PromotionCode>>,
328 #[serde(rename = "appliedReductions", skip_serializing_if = "Option::is_none")]
329 applied_reductions: Option<Vec<models::CardReference>>,
330 #[serde(rename = "indicatedConsumption", skip_serializing_if = "Option::is_none")]
331 indicated_consumption: Option<Box<models::IndicatedConsumption>>,
332 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
333 accounting_ref: Option<Box<models::AccountingRef>>,
334 #[serde(rename = "grantedReductionAmounts", skip_serializing_if = "Option::is_none")]
335 granted_reduction_amounts: Option<Box<models::GrantedReductionAmounts>>,
336 },
337 #[serde(rename="Reservation")]
338 Reservation {
339 #[serde(rename = "id")]
340 id: String,
341 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
342 summary: Option<String>,
343 #[serde(rename = "createdOn")]
345 created_on: String,
346 #[serde(rename = "confirmableUntil", skip_serializing_if = "Option::is_none")]
348 confirmable_until: Option<String>,
349 #[serde(rename = "validFrom")]
350 valid_from: String,
351 #[serde(rename = "validUntil", skip_serializing_if = "Option::is_none")]
353 valid_until: Option<String>,
354 #[serde(rename = "confirmedOn", skip_serializing_if = "Option::is_none")]
355 confirmed_on: Option<String>,
356 #[serde(rename = "confirmedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
357 confirmed_fulfillment_options: Option<Box<models::FulfillmentOption>>,
358 #[serde(rename = "price")]
359 price: Box<models::Price>,
360 #[serde(rename = "refundAmount", skip_serializing_if = "Option::is_none")]
361 refund_amount: Option<Box<models::Price>>,
362 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
363 trip_coverage: Option<Box<models::TripCoverage>>,
364 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
365 inbound_trip_coverage: Option<Box<models::TripCoverage>>,
366 #[serde(rename = "summaryProductId", skip_serializing_if = "Option::is_none")]
368 summary_product_id: Option<String>,
369 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
371 products: Option<Vec<models::ProductLegAssociation>>,
372 #[serde(rename = "status")]
373 status: models::BookingPartStatus,
374 #[serde(rename = "pricingStatus", skip_serializing_if = "Option::is_none")]
376 pricing_status: Option<String>,
377 #[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
378 offer_mode: Option<models::OfferMode>,
379 #[serde(rename = "bookingPartCode", skip_serializing_if = "Option::is_none")]
381 booking_part_code: Option<String>,
382 #[serde(rename = "distributorBookingRef", skip_serializing_if = "Option::is_none")]
384 distributor_booking_ref: Option<String>,
385 #[serde(rename = "retailerBookingRef", skip_serializing_if = "Option::is_none")]
387 retailer_booking_ref: Option<String>,
388 #[serde(rename = "passengerIds")]
390 passenger_ids: Vec<String>,
391 #[serde(rename = "availableFulfillmentOptions", skip_serializing_if = "Option::is_none")]
392 available_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
393 #[serde(rename = "refundable")]
394 refundable: models::RefundType,
395 #[serde(rename = "exchangeable")]
396 exchangeable: models::ExchangeableType,
397 #[serde(rename = "afterSaleConditions", skip_serializing_if = "Option::is_none")]
399 after_sale_conditions: Option<Vec<models::AfterSaleCondition>>,
400 #[serde(rename = "afterSalesOverrideDetails", skip_serializing_if = "Option::is_none")]
401 after_sales_override_details: Option<Box<models::AfterSalesOverrideDetails>>,
402 #[serde(rename = "appliedCorporateCodes", skip_serializing_if = "Option::is_none")]
403 applied_corporate_codes: Option<Vec<models::CorporateCode>>,
404 #[serde(rename = "appliedPassengerTypes", skip_serializing_if = "Option::is_none")]
405 applied_passenger_types: Option<Vec<models::AppliedPassengerType>>,
406 #[serde(rename = "appliedPromotionCodes", skip_serializing_if = "Option::is_none")]
407 applied_promotion_codes: Option<Vec<models::PromotionCode>>,
408 #[serde(rename = "appliedReductions", skip_serializing_if = "Option::is_none")]
409 applied_reductions: Option<Vec<models::CardReference>>,
410 #[serde(rename = "indicatedConsumption", skip_serializing_if = "Option::is_none")]
411 indicated_consumption: Option<Box<models::IndicatedConsumption>>,
412 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
413 accounting_ref: Option<Box<models::AccountingRef>>,
414 #[serde(rename = "grantedReductionAmounts", skip_serializing_if = "Option::is_none")]
415 granted_reduction_amounts: Option<Box<models::GrantedReductionAmounts>>,
416 },
417}
418
419impl Default for AbstractBookingPart {
420 fn default() -> Self {
421 Self::Admission {
422 id: Default::default(),
423 summary: Default::default(),
424 created_on: Default::default(),
425 confirmable_until: Default::default(),
426 valid_from: Default::default(),
427 valid_until: Default::default(),
428 confirmed_on: Default::default(),
429 confirmed_fulfillment_options: Default::default(),
430 price: Default::default(),
431 refund_amount: Default::default(),
432 trip_coverage: Default::default(),
433 inbound_trip_coverage: Default::default(),
434 summary_product_id: Default::default(),
435 products: Default::default(),
436 status: Default::default(),
437 pricing_status: Default::default(),
438 offer_mode: Default::default(),
439 booking_part_code: Default::default(),
440 distributor_booking_ref: Default::default(),
441 retailer_booking_ref: Default::default(),
442 passenger_ids: Default::default(),
443 available_fulfillment_options: Default::default(),
444 refundable: Default::default(),
445 exchangeable: Default::default(),
446 after_sale_conditions: Default::default(),
447 after_sales_override_details: Default::default(),
448 applied_corporate_codes: Default::default(),
449 applied_passenger_types: Default::default(),
450 applied_promotion_codes: Default::default(),
451 applied_reductions: Default::default(),
452 indicated_consumption: Default::default(),
453 accounting_ref: Default::default(),
454 granted_reduction_amounts: Default::default(),
455 }
456
457 }
458}
459
460