aws_lambda_events/event/cloudwatch_events/
gamelift.rs1use serde::{Deserialize, Serialize};
2
3use crate::custom_serde::deserialize_nullish_boolean;
4
5#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
6#[serde(rename_all = "camelCase")]
7pub struct MatchmakingSearching {
8 pub tickets: Vec<Ticket>,
9 pub estimated_wait_millis: String,
10 pub r#type: String,
11 pub game_session_info: GameSessionInfo,
12}
13
14#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
15#[serde(rename_all = "camelCase")]
16pub struct Ticket {
17 pub ticket_id: String,
18 pub start_time: String,
19 pub players: Vec<Player>,
20}
21
22#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
23#[serde(rename_all = "camelCase")]
24pub struct Player {
25 pub player_id: String,
26 pub team: Option<String>,
27 #[serde(default, deserialize_with = "deserialize_nullish_boolean")]
28 pub accepted: bool,
29 pub player_session_id: Option<String>,
30}
31
32#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
33#[serde(rename_all = "camelCase")]
34pub struct GameSessionInfo {
35 pub players: Vec<Player>,
36}
37
38#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
39#[serde(rename_all = "camelCase")]
40pub struct PotentialMatchCreated {
41 pub tickets: Vec<Ticket>,
42 pub acceptance_timeout: i64,
43 pub rule_evaluation_metrics: Vec<RuleEvaluationMetric>,
44 pub acceptance_required: bool,
45 pub r#type: String,
46 pub game_session_info: GameSessionInfo,
47 pub match_id: String,
48}
49
50#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
51#[serde(rename_all = "camelCase")]
52pub struct RuleEvaluationMetric {
53 pub rule_name: String,
54 pub passed_count: i64,
55 pub failed_count: i64,
56}
57
58#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
59#[serde(rename_all = "camelCase")]
60pub struct AcceptMatch {
61 pub tickets: Vec<Ticket>,
62 pub r#type: String,
63 pub game_session_info: GameSessionInfo,
64 pub match_id: String,
65}
66
67#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
68#[serde(rename_all = "camelCase")]
69pub struct AcceptMatchCompleted {
70 pub tickets: Vec<Ticket>,
71 pub acceptance: String,
72 pub r#type: String,
73 pub game_session_info: GameSessionInfo,
74 pub match_id: String,
75}
76
77#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
78#[serde(rename_all = "camelCase")]
79pub struct MatchmakingSucceeded {
80 pub tickets: Vec<Ticket>,
81 pub r#type: String,
82 pub game_session_info: GameSessionInfo,
83 pub match_id: String,
84}
85
86#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
87#[serde(rename_all = "camelCase")]
88pub struct MatchmakingTimedOut {
89 pub reason: String,
90 pub tickets: Vec<Ticket>,
91 pub rule_evaluation_metrics: Vec<RuleEvaluationMetric>,
92 pub r#type: String,
93 pub message: String,
94 pub game_session_info: GameSessionInfo,
95}
96
97#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
98#[serde(rename_all = "camelCase")]
99pub struct MatchmakingCancelled {
100 pub reason: String,
101 pub tickets: Vec<Ticket>,
102 pub rule_evaluation_metrics: Vec<RuleEvaluationMetric>,
103 pub r#type: String,
104 pub message: String,
105 pub game_session_info: GameSessionInfo,
106}
107
108#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
109#[serde(rename_all = "camelCase")]
110pub struct MatchmakingFailed {
111 pub tickets: Vec<Ticket>,
112 pub custom_event_data: String,
113 pub r#type: String,
114 pub reason: String,
115 pub message: String,
116 pub game_session_info: GameSessionInfo,
117 pub match_id: String,
118}