1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct NotificationResource {
16 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
17 pub id: Option<i32>,
18 #[serde(rename = "name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
19 pub name: Option<Option<String>>,
20 #[serde(rename = "fields", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
21 pub fields: Option<Option<Vec<models::Field>>>,
22 #[serde(rename = "implementationName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
23 pub implementation_name: Option<Option<String>>,
24 #[serde(rename = "implementation", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub implementation: Option<Option<String>>,
26 #[serde(rename = "configContract", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub config_contract: Option<Option<String>>,
28 #[serde(rename = "infoLink", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29 pub info_link: Option<Option<String>>,
30 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
31 pub message: Option<Box<models::ProviderMessage>>,
32 #[serde(rename = "tags", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub tags: Option<Option<Vec<i32>>>,
34 #[serde(rename = "presets", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub presets: Option<Option<Vec<models::NotificationResource>>>,
36 #[serde(rename = "link", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub link: Option<Option<String>>,
38 #[serde(rename = "onGrab", skip_serializing_if = "Option::is_none")]
39 pub on_grab: Option<bool>,
40 #[serde(rename = "onDownload", skip_serializing_if = "Option::is_none")]
41 pub on_download: Option<bool>,
42 #[serde(rename = "onUpgrade", skip_serializing_if = "Option::is_none")]
43 pub on_upgrade: Option<bool>,
44 #[serde(rename = "onImportComplete", skip_serializing_if = "Option::is_none")]
45 pub on_import_complete: Option<bool>,
46 #[serde(rename = "onRename", skip_serializing_if = "Option::is_none")]
47 pub on_rename: Option<bool>,
48 #[serde(rename = "onSeriesAdd", skip_serializing_if = "Option::is_none")]
49 pub on_series_add: Option<bool>,
50 #[serde(rename = "onSeriesDelete", skip_serializing_if = "Option::is_none")]
51 pub on_series_delete: Option<bool>,
52 #[serde(rename = "onEpisodeFileDelete", skip_serializing_if = "Option::is_none")]
53 pub on_episode_file_delete: Option<bool>,
54 #[serde(rename = "onEpisodeFileDeleteForUpgrade", skip_serializing_if = "Option::is_none")]
55 pub on_episode_file_delete_for_upgrade: Option<bool>,
56 #[serde(rename = "onHealthIssue", skip_serializing_if = "Option::is_none")]
57 pub on_health_issue: Option<bool>,
58 #[serde(rename = "includeHealthWarnings", skip_serializing_if = "Option::is_none")]
59 pub include_health_warnings: Option<bool>,
60 #[serde(rename = "onHealthRestored", skip_serializing_if = "Option::is_none")]
61 pub on_health_restored: Option<bool>,
62 #[serde(rename = "onApplicationUpdate", skip_serializing_if = "Option::is_none")]
63 pub on_application_update: Option<bool>,
64 #[serde(rename = "onManualInteractionRequired", skip_serializing_if = "Option::is_none")]
65 pub on_manual_interaction_required: Option<bool>,
66 #[serde(rename = "supportsOnGrab", skip_serializing_if = "Option::is_none")]
67 pub supports_on_grab: Option<bool>,
68 #[serde(rename = "supportsOnDownload", skip_serializing_if = "Option::is_none")]
69 pub supports_on_download: Option<bool>,
70 #[serde(rename = "supportsOnUpgrade", skip_serializing_if = "Option::is_none")]
71 pub supports_on_upgrade: Option<bool>,
72 #[serde(rename = "supportsOnImportComplete", skip_serializing_if = "Option::is_none")]
73 pub supports_on_import_complete: Option<bool>,
74 #[serde(rename = "supportsOnRename", skip_serializing_if = "Option::is_none")]
75 pub supports_on_rename: Option<bool>,
76 #[serde(rename = "supportsOnSeriesAdd", skip_serializing_if = "Option::is_none")]
77 pub supports_on_series_add: Option<bool>,
78 #[serde(rename = "supportsOnSeriesDelete", skip_serializing_if = "Option::is_none")]
79 pub supports_on_series_delete: Option<bool>,
80 #[serde(rename = "supportsOnEpisodeFileDelete", skip_serializing_if = "Option::is_none")]
81 pub supports_on_episode_file_delete: Option<bool>,
82 #[serde(rename = "supportsOnEpisodeFileDeleteForUpgrade", skip_serializing_if = "Option::is_none")]
83 pub supports_on_episode_file_delete_for_upgrade: Option<bool>,
84 #[serde(rename = "supportsOnHealthIssue", skip_serializing_if = "Option::is_none")]
85 pub supports_on_health_issue: Option<bool>,
86 #[serde(rename = "supportsOnHealthRestored", skip_serializing_if = "Option::is_none")]
87 pub supports_on_health_restored: Option<bool>,
88 #[serde(rename = "supportsOnApplicationUpdate", skip_serializing_if = "Option::is_none")]
89 pub supports_on_application_update: Option<bool>,
90 #[serde(rename = "supportsOnManualInteractionRequired", skip_serializing_if = "Option::is_none")]
91 pub supports_on_manual_interaction_required: Option<bool>,
92 #[serde(rename = "testCommand", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
93 pub test_command: Option<Option<String>>,
94}
95
96impl NotificationResource {
97 pub fn new() -> NotificationResource {
98 NotificationResource {
99 id: None,
100 name: None,
101 fields: None,
102 implementation_name: None,
103 implementation: None,
104 config_contract: None,
105 info_link: None,
106 message: None,
107 tags: None,
108 presets: None,
109 link: None,
110 on_grab: None,
111 on_download: None,
112 on_upgrade: None,
113 on_import_complete: None,
114 on_rename: None,
115 on_series_add: None,
116 on_series_delete: None,
117 on_episode_file_delete: None,
118 on_episode_file_delete_for_upgrade: None,
119 on_health_issue: None,
120 include_health_warnings: None,
121 on_health_restored: None,
122 on_application_update: None,
123 on_manual_interaction_required: None,
124 supports_on_grab: None,
125 supports_on_download: None,
126 supports_on_upgrade: None,
127 supports_on_import_complete: None,
128 supports_on_rename: None,
129 supports_on_series_add: None,
130 supports_on_series_delete: None,
131 supports_on_episode_file_delete: None,
132 supports_on_episode_file_delete_for_upgrade: None,
133 supports_on_health_issue: None,
134 supports_on_health_restored: None,
135 supports_on_application_update: None,
136 supports_on_manual_interaction_required: None,
137 test_command: None,
138 }
139 }
140}
141