webhook_line/models/
event.rs

1/*
2 * Webhook Type Definition
3 *
4 * Webhook event definition of the LINE Messaging API
5 *
6 * The version of the OpenAPI document: 1.0.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14use super::{
15    AccountLinkEvent, ActivatedEvent, BeaconEvent, BotResumedEvent, BotSuspendedEvent,
16    DeactivatedEvent, FollowEvent, JoinEvent, LeaveEvent, LinkContent, MemberJoinedEvent,
17    MemberLeftEvent, MembershipEvent, MessageEvent, ModuleEvent, PnpDeliveryCompletionEvent,
18    PostbackEvent, ThingsEvent, UnfollowEvent, UnsendEvent, VideoPlayCompleteEvent,
19};
20
21/// Event : Webhook event
22#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
23#[serde(tag = "type")]
24pub enum Event {
25    #[serde(rename = "accountLink")]
26    AccountLinkEvent(AccountLinkEvent),
27    #[serde(rename = "activated")]
28    ActivatedEvent(ActivatedEvent),
29    #[serde(rename = "beacon")]
30    BeaconEvent(BeaconEvent),
31    #[serde(rename = "botResumed")]
32    BotResumedEvent(BotResumedEvent),
33    #[serde(rename = "botSuspended")]
34    BotSuspendedEvent(BotSuspendedEvent),
35    #[serde(rename = "deactivated")]
36    DeactivatedEvent(DeactivatedEvent),
37    #[serde(rename = "delivery")]
38    PnpDeliveryCompletionEvent(PnpDeliveryCompletionEvent),
39    #[serde(rename = "follow")]
40    FollowEvent(FollowEvent),
41    #[serde(rename = "join")]
42    JoinEvent(JoinEvent),
43    #[serde(rename = "leave")]
44    LeaveEvent(LeaveEvent),
45    #[serde(rename = "memberJoined")]
46    MemberJoinedEvent(MemberJoinedEvent),
47    #[serde(rename = "memberLeft")]
48    MemberLeftEvent(MemberLeftEvent),
49    #[serde(rename = "membership")]
50    MembershipEvent(MembershipEvent),
51    #[serde(rename = "message")]
52    MessageEvent(MessageEvent),
53    #[serde(rename = "module")]
54    ModuleEvent(ModuleEvent),
55    #[serde(rename = "postback")]
56    PostbackEvent(PostbackEvent),
57    #[serde(rename = "things")]
58    ThingsEvent(ThingsEvent),
59    #[serde(rename = "unfollow")]
60    UnfollowEvent(UnfollowEvent),
61    #[serde(rename = "unsend")]
62    UnsendEvent(UnsendEvent),
63    #[serde(rename = "videoPlayComplete")]
64    VideoPlayCompleteEvent(VideoPlayCompleteEvent),
65}
66
67impl Default for Event {
68    fn default() -> Self {
69        Self::AccountLinkEvent(AccountLinkEvent {
70            r#type: Some("accountLink".to_owned()),
71            source: None,
72            timestamp: Default::default(),
73            mode: Default::default(),
74            webhook_event_id: Default::default(),
75            delivery_context: Default::default(),
76            reply_token: None,
77            link: Box::new(LinkContent {
78                result: Default::default(),
79                nonce: "".to_owned(),
80            }),
81        })
82    }
83}