origin_sdk/protocol/
entitlements.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct ConsumeEntitlement {
5 #[serde(rename = "@UserId")]
6 pub user_id: u64,
7 #[serde(rename = "@Uses")]
8 pub uses: i32,
9 #[serde(rename = "@bOveruse")]
10 pub b_overuse: bool,
11 #[serde(rename = "Entitlement")]
12 pub entitlement: Entitlement,
13}
14
15#[derive(Debug, Serialize, Deserialize)]
16pub struct ConsumeEntitlementResponse {
17 #[serde(rename = "Entitlement")]
18 pub entitlement: Entitlement,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22pub struct Entitlement {
23 #[serde(rename = "@")]
24 pub type_: String,
25 #[serde(rename = "@ItemId")]
26 pub item_id: String,
27 #[serde(rename = "@EntitlementId")]
28 pub entitlement_id: String,
29 #[serde(rename = "@EntitlementTag")]
30 pub entitlement_tag: String,
31 #[serde(rename = "@Group")]
32 pub group: String,
33 #[serde(rename = "@ResourceId")]
34 pub resource_id: String,
35 #[serde(rename = "@UseCount")]
36 pub use_count: i32,
37 #[serde(rename = "@Expiration")]
38 pub expiration: String,
39 #[serde(rename = "@GrantDate")]
40 pub grant_date: String,
41 #[serde(rename = "@LastModifiedDate")]
42 pub last_modified_date: String,
43 #[serde(rename = "@Version")]
44 pub version: i32,
45}
46
47#[derive(Debug, Serialize, Deserialize)]
48pub struct ExtendTrial {
49 #[serde(rename = "@UserId")]
50 pub user_id: u64,
51 #[serde(rename = "@RequestTicket")]
52 pub request_ticket: String,
53 #[serde(rename = "@TicketEngine")]
54 pub ticket_engine: i32,
55}
56
57#[derive(Debug, Serialize, Deserialize)]
58pub struct ExtendTrialResponse {
59 #[serde(rename = "@Code")]
60 pub code: i32,
61 #[serde(rename = "@TotalTimeRemaining")]
62 pub total_time_remaining: i32,
63 #[serde(rename = "@TimeGranted")]
64 pub time_granted: i32,
65 #[serde(rename = "@ResponseTicket")]
66 pub response_ticket: String,
67 #[serde(
68 default = "ExtendTrialResponse::default_retry_count",
69 rename = "@RetryCount"
70 )]
71 pub retry_count: i32,
72 #[serde(
73 default = "ExtendTrialResponse::default_retry_after_fail_sec",
74 rename = "@RetryAfterFailSec"
75 )]
76 pub retry_after_fail_sec: i32,
77 #[serde(
78 default = "ExtendTrialResponse::default_extend_before_expire_sec",
79 rename = "@ExtendBeforeExpireSec"
80 )]
81 pub extend_before_expire_sec: i32,
82 #[serde(
83 default = "ExtendTrialResponse::default_sleep_before_nuke_sec",
84 rename = "@SleepBeforeNukeSec"
85 )]
86 pub sleep_before_nuke_sec: i32,
87}
88
89impl ExtendTrialResponse {
90 #[must_use]
91 pub fn default_retry_count() -> i32 {
92 5i32
93 }
94
95 #[must_use]
96 pub fn default_retry_after_fail_sec() -> i32 {
97 10i32
98 }
99
100 #[must_use]
101 pub fn default_extend_before_expire_sec() -> i32 {
102 60i32
103 }
104
105 #[must_use]
106 pub fn default_sleep_before_nuke_sec() -> i32 {
107 20i32
108 }
109}
110
111#[derive(Debug, Serialize, Deserialize)]
112pub struct InvalidateLicense {
113 #[serde(rename = "@UserId")]
114 pub user_id: u64,
115}
116
117#[derive(Debug, Serialize, Deserialize)]
118pub struct QueryEntitlements {
119 #[serde(rename = "@UserId")]
120 pub user_id: u64,
121 #[serde(rename = "@OfferId")]
122 pub offer_id: String,
123 #[serde(rename = "@ItemId")]
124 pub item_id: String,
125 #[serde(rename = "@Group")]
126 pub group: String,
127 #[serde(rename = "@includeChildGroups")]
128 pub include_child_groups: bool,
129 #[serde(rename = "@includeExpiredTrialDLC")]
130 pub include_expired_trial_dlc: bool,
131 #[serde(rename = "FilterOffers")]
132 pub filter_offers: Vec<String>,
133 #[serde(rename = "FilterItems")]
134 pub filter_items: Vec<String>,
135 #[serde(rename = "FilterGroups")]
136 pub filter_groups: Vec<String>,
137}
138
139#[derive(Debug, Serialize, Deserialize)]
140pub struct QueryEntitlementsResponse {
141 #[serde(rename = "Entitlements")]
142 pub entitlements: Vec<Entitlement>,
143}
144
145#[derive(Debug, Serialize, Deserialize)]
146pub struct QueryManifest {
147 #[serde(rename = "@UserId")]
148 pub user_id: u64,
149 #[serde(rename = "@Manifest")]
150 pub manifest: String,
151}
152
153#[derive(Debug, Serialize, Deserialize)]
154pub struct QueryManifestResponse {
155 #[serde(rename = "Entitlements")]
156 pub entitlements: Vec<Entitlement>,
157}
158
159#[derive(Debug, Serialize, Deserialize)]
160pub struct RefreshEntitlements;
161
162#[derive(Debug, Serialize, Deserialize)]
163pub struct RequestLicense {
164 #[serde(rename = "@UserId")]
165 pub user_id: u64,
166 #[serde(rename = "@RequestTicket")]
167 pub request_ticket: String,
168 #[serde(rename = "@TicketEngine")]
169 pub ticket_engine: i32,
170}
171
172#[derive(Debug, Serialize, Deserialize)]
173pub struct RequestLicenseResponse {
174 #[serde(rename = "@License")]
175 pub license: String,
176}