Skip to main content

cdevents_sdk/generated/
mod.rs

1// @generated
2// by cdevents/sdk-rust/generator (mod.hbs)
3
4use serde::{Serialize, Deserialize, de::Error};
5
6pub mod approval_closed_0_1_0;
7pub mod approval_created_0_1_0;
8pub mod approval_updated_0_1_0;
9pub mod artifact_deleted_0_2_0;
10pub mod artifact_deleted_0_1_0;
11pub mod artifact_downloaded_0_2_0;
12pub mod artifact_downloaded_0_1_0;
13pub mod artifact_packaged_0_3_0;
14pub mod artifact_packaged_0_1_1;
15pub mod artifact_packaged_0_2_0;
16pub mod artifact_published_0_3_0;
17pub mod artifact_published_0_1_1;
18pub mod artifact_published_0_2_0;
19pub mod artifact_signed_0_3_0;
20pub mod artifact_signed_0_1_0;
21pub mod artifact_signed_0_2_0;
22pub mod branch_created_0_3_0;
23pub mod branch_created_0_1_2;
24pub mod branch_created_0_2_0;
25pub mod branch_deleted_0_3_0;
26pub mod branch_deleted_0_1_2;
27pub mod branch_deleted_0_2_0;
28pub mod build_finished_0_3_0;
29pub mod build_finished_0_1_1;
30pub mod build_finished_0_2_0;
31pub mod build_queued_0_3_0;
32pub mod build_queued_0_1_1;
33pub mod build_queued_0_2_0;
34pub mod build_started_0_3_0;
35pub mod build_started_0_1_1;
36pub mod build_started_0_2_0;
37pub mod change_abandoned_0_3_0;
38pub mod change_abandoned_0_1_2;
39pub mod change_abandoned_0_2_0;
40pub mod change_created_0_4_0;
41pub mod change_created_0_1_2;
42pub mod change_created_0_3_0;
43pub mod change_merged_0_3_0;
44pub mod change_merged_0_1_2;
45pub mod change_merged_0_2_0;
46pub mod change_reviewed_0_3_0;
47pub mod change_reviewed_0_1_2;
48pub mod change_reviewed_0_2_0;
49pub mod change_updated_0_3_0;
50pub mod change_updated_0_1_2;
51pub mod change_updated_0_2_0;
52pub mod environment_created_0_3_0;
53pub mod environment_created_0_1_1;
54pub mod environment_created_0_2_0;
55pub mod environment_deleted_0_3_0;
56pub mod environment_deleted_0_1_1;
57pub mod environment_deleted_0_2_0;
58pub mod environment_modified_0_3_0;
59pub mod environment_modified_0_1_1;
60pub mod environment_modified_0_2_0;
61pub mod incident_detected_0_3_0;
62pub mod incident_detected_0_1_0;
63pub mod incident_detected_0_2_0;
64pub mod incident_reported_0_3_0;
65pub mod incident_reported_0_1_0;
66pub mod incident_reported_0_2_0;
67pub mod incident_resolved_0_3_0;
68pub mod incident_resolved_0_1_0;
69pub mod incident_resolved_0_2_0;
70pub mod pipelinerun_finished_0_3_0;
71pub mod pipelinerun_finished_0_1_1;
72pub mod pipelinerun_finished_0_2_0;
73pub mod pipelinerun_queued_0_3_0;
74pub mod pipelinerun_queued_0_1_1;
75pub mod pipelinerun_queued_0_2_0;
76pub mod pipelinerun_started_0_3_0;
77pub mod pipelinerun_started_0_1_1;
78pub mod pipelinerun_started_0_2_0;
79pub mod repository_created_0_3_0;
80pub mod repository_created_0_1_1;
81pub mod repository_created_0_2_0;
82pub mod repository_deleted_0_3_0;
83pub mod repository_deleted_0_1_1;
84pub mod repository_deleted_0_2_0;
85pub mod repository_modified_0_3_0;
86pub mod repository_modified_0_1_1;
87pub mod repository_modified_0_2_0;
88pub mod service_deployed_0_3_0;
89pub mod service_deployed_0_1_1;
90pub mod service_deployed_0_2_0;
91pub mod service_published_0_3_0;
92pub mod service_published_0_1_1;
93pub mod service_published_0_2_0;
94pub mod service_removed_0_3_0;
95pub mod service_removed_0_1_1;
96pub mod service_removed_0_2_0;
97pub mod service_rolledback_0_3_0;
98pub mod service_rolledback_0_1_1;
99pub mod service_rolledback_0_2_0;
100pub mod service_upgraded_0_3_0;
101pub mod service_upgraded_0_1_1;
102pub mod service_upgraded_0_2_0;
103pub mod taskrun_finished_0_3_0;
104pub mod taskrun_finished_0_1_1;
105pub mod taskrun_finished_0_2_0;
106pub mod taskrun_started_0_3_0;
107pub mod taskrun_started_0_1_1;
108pub mod taskrun_started_0_2_0;
109pub mod testcaserun_finished_0_3_0;
110pub mod testcaserun_finished_0_1_0;
111pub mod testcaserun_finished_0_2_0;
112pub mod testcaserun_queued_0_3_0;
113pub mod testcaserun_queued_0_1_0;
114pub mod testcaserun_queued_0_2_0;
115pub mod testcaserun_skipped_0_2_0;
116pub mod testcaserun_skipped_0_1_0;
117pub mod testcaserun_started_0_3_0;
118pub mod testcaserun_started_0_1_0;
119pub mod testcaserun_started_0_2_0;
120pub mod testoutput_published_0_3_0;
121pub mod testoutput_published_0_1_0;
122pub mod testoutput_published_0_2_0;
123pub mod testsuiterun_finished_0_3_0;
124pub mod testsuiterun_finished_0_1_0;
125pub mod testsuiterun_finished_0_2_0;
126pub mod testsuiterun_queued_0_3_0;
127pub mod testsuiterun_queued_0_1_0;
128pub mod testsuiterun_queued_0_2_0;
129pub mod testsuiterun_started_0_3_0;
130pub mod testsuiterun_started_0_1_0;
131pub mod testsuiterun_started_0_2_0;
132pub mod ticket_closed_0_2_0;
133pub mod ticket_closed_0_1_0;
134pub mod ticket_created_0_2_0;
135pub mod ticket_created_0_1_0;
136pub mod ticket_updated_0_2_0;
137pub mod ticket_updated_0_1_0;
138
139pub mod latest {
140    pub use super::approval_closed_0_1_0 as approval_closed;
141    pub use super::approval_created_0_1_0 as approval_created;
142    pub use super::approval_updated_0_1_0 as approval_updated;
143    pub use super::artifact_deleted_0_2_0 as artifact_deleted;
144    pub use super::artifact_downloaded_0_2_0 as artifact_downloaded;
145    pub use super::artifact_packaged_0_3_0 as artifact_packaged;
146    pub use super::artifact_published_0_3_0 as artifact_published;
147    pub use super::artifact_signed_0_3_0 as artifact_signed;
148    pub use super::branch_created_0_3_0 as branch_created;
149    pub use super::branch_deleted_0_3_0 as branch_deleted;
150    pub use super::build_finished_0_3_0 as build_finished;
151    pub use super::build_queued_0_3_0 as build_queued;
152    pub use super::build_started_0_3_0 as build_started;
153    pub use super::change_abandoned_0_3_0 as change_abandoned;
154    pub use super::change_created_0_4_0 as change_created;
155    pub use super::change_merged_0_3_0 as change_merged;
156    pub use super::change_reviewed_0_3_0 as change_reviewed;
157    pub use super::change_updated_0_3_0 as change_updated;
158    pub use super::environment_created_0_3_0 as environment_created;
159    pub use super::environment_deleted_0_3_0 as environment_deleted;
160    pub use super::environment_modified_0_3_0 as environment_modified;
161    pub use super::incident_detected_0_3_0 as incident_detected;
162    pub use super::incident_reported_0_3_0 as incident_reported;
163    pub use super::incident_resolved_0_3_0 as incident_resolved;
164    pub use super::pipelinerun_finished_0_3_0 as pipelinerun_finished;
165    pub use super::pipelinerun_queued_0_3_0 as pipelinerun_queued;
166    pub use super::pipelinerun_started_0_3_0 as pipelinerun_started;
167    pub use super::repository_created_0_3_0 as repository_created;
168    pub use super::repository_deleted_0_3_0 as repository_deleted;
169    pub use super::repository_modified_0_3_0 as repository_modified;
170    pub use super::service_deployed_0_3_0 as service_deployed;
171    pub use super::service_published_0_3_0 as service_published;
172    pub use super::service_removed_0_3_0 as service_removed;
173    pub use super::service_rolledback_0_3_0 as service_rolledback;
174    pub use super::service_upgraded_0_3_0 as service_upgraded;
175    pub use super::taskrun_finished_0_3_0 as taskrun_finished;
176    pub use super::taskrun_started_0_3_0 as taskrun_started;
177    pub use super::testcaserun_finished_0_3_0 as testcaserun_finished;
178    pub use super::testcaserun_queued_0_3_0 as testcaserun_queued;
179    pub use super::testcaserun_skipped_0_2_0 as testcaserun_skipped;
180    pub use super::testcaserun_started_0_3_0 as testcaserun_started;
181    pub use super::testoutput_published_0_3_0 as testoutput_published;
182    pub use super::testsuiterun_finished_0_3_0 as testsuiterun_finished;
183    pub use super::testsuiterun_queued_0_3_0 as testsuiterun_queued;
184    pub use super::testsuiterun_started_0_3_0 as testsuiterun_started;
185    pub use super::ticket_closed_0_2_0 as ticket_closed;
186    pub use super::ticket_created_0_2_0 as ticket_created;
187    pub use super::ticket_updated_0_2_0 as ticket_updated;
188}
189pub mod spec_0_3_0 {
190    pub use super::artifact_packaged_0_1_1 as artifact_packaged;
191    pub use super::artifact_published_0_1_1 as artifact_published;
192    pub use super::artifact_signed_0_1_0 as artifact_signed;
193    pub use super::branch_created_0_1_2 as branch_created;
194    pub use super::branch_deleted_0_1_2 as branch_deleted;
195    pub use super::build_finished_0_1_1 as build_finished;
196    pub use super::build_queued_0_1_1 as build_queued;
197    pub use super::build_started_0_1_1 as build_started;
198    pub use super::change_abandoned_0_1_2 as change_abandoned;
199    pub use super::change_created_0_1_2 as change_created;
200    pub use super::change_merged_0_1_2 as change_merged;
201    pub use super::change_reviewed_0_1_2 as change_reviewed;
202    pub use super::change_updated_0_1_2 as change_updated;
203    pub use super::environment_created_0_1_1 as environment_created;
204    pub use super::environment_deleted_0_1_1 as environment_deleted;
205    pub use super::environment_modified_0_1_1 as environment_modified;
206    pub use super::incident_detected_0_1_0 as incident_detected;
207    pub use super::incident_reported_0_1_0 as incident_reported;
208    pub use super::incident_resolved_0_1_0 as incident_resolved;
209    pub use super::pipelinerun_finished_0_1_1 as pipelinerun_finished;
210    pub use super::pipelinerun_queued_0_1_1 as pipelinerun_queued;
211    pub use super::pipelinerun_started_0_1_1 as pipelinerun_started;
212    pub use super::repository_created_0_1_1 as repository_created;
213    pub use super::repository_deleted_0_1_1 as repository_deleted;
214    pub use super::repository_modified_0_1_1 as repository_modified;
215    pub use super::service_deployed_0_1_1 as service_deployed;
216    pub use super::service_published_0_1_1 as service_published;
217    pub use super::service_removed_0_1_1 as service_removed;
218    pub use super::service_rolledback_0_1_1 as service_rolledback;
219    pub use super::service_upgraded_0_1_1 as service_upgraded;
220    pub use super::taskrun_finished_0_1_1 as taskrun_finished;
221    pub use super::taskrun_started_0_1_1 as taskrun_started;
222    pub use super::testcaserun_finished_0_1_0 as testcaserun_finished;
223    pub use super::testcaserun_queued_0_1_0 as testcaserun_queued;
224    pub use super::testcaserun_started_0_1_0 as testcaserun_started;
225    pub use super::testoutput_published_0_1_0 as testoutput_published;
226    pub use super::testsuiterun_finished_0_1_0 as testsuiterun_finished;
227    pub use super::testsuiterun_queued_0_1_0 as testsuiterun_queued;
228    pub use super::testsuiterun_started_0_1_0 as testsuiterun_started;
229}
230pub mod spec_0_4_1 {
231    pub use super::artifact_deleted_0_1_0 as artifact_deleted;
232    pub use super::artifact_downloaded_0_1_0 as artifact_downloaded;
233    pub use super::artifact_packaged_0_2_0 as artifact_packaged;
234    pub use super::artifact_published_0_2_0 as artifact_published;
235    pub use super::artifact_signed_0_2_0 as artifact_signed;
236    pub use super::branch_created_0_2_0 as branch_created;
237    pub use super::branch_deleted_0_2_0 as branch_deleted;
238    pub use super::build_finished_0_2_0 as build_finished;
239    pub use super::build_queued_0_2_0 as build_queued;
240    pub use super::build_started_0_2_0 as build_started;
241    pub use super::change_abandoned_0_2_0 as change_abandoned;
242    pub use super::change_created_0_3_0 as change_created;
243    pub use super::change_merged_0_2_0 as change_merged;
244    pub use super::change_reviewed_0_2_0 as change_reviewed;
245    pub use super::change_updated_0_2_0 as change_updated;
246    pub use super::environment_created_0_2_0 as environment_created;
247    pub use super::environment_deleted_0_2_0 as environment_deleted;
248    pub use super::environment_modified_0_2_0 as environment_modified;
249    pub use super::incident_detected_0_2_0 as incident_detected;
250    pub use super::incident_reported_0_2_0 as incident_reported;
251    pub use super::incident_resolved_0_2_0 as incident_resolved;
252    pub use super::pipelinerun_finished_0_2_0 as pipelinerun_finished;
253    pub use super::pipelinerun_queued_0_2_0 as pipelinerun_queued;
254    pub use super::pipelinerun_started_0_2_0 as pipelinerun_started;
255    pub use super::repository_created_0_2_0 as repository_created;
256    pub use super::repository_deleted_0_2_0 as repository_deleted;
257    pub use super::repository_modified_0_2_0 as repository_modified;
258    pub use super::service_deployed_0_2_0 as service_deployed;
259    pub use super::service_published_0_2_0 as service_published;
260    pub use super::service_removed_0_2_0 as service_removed;
261    pub use super::service_rolledback_0_2_0 as service_rolledback;
262    pub use super::service_upgraded_0_2_0 as service_upgraded;
263    pub use super::taskrun_finished_0_2_0 as taskrun_finished;
264    pub use super::taskrun_started_0_2_0 as taskrun_started;
265    pub use super::testcaserun_finished_0_2_0 as testcaserun_finished;
266    pub use super::testcaserun_queued_0_2_0 as testcaserun_queued;
267    pub use super::testcaserun_skipped_0_1_0 as testcaserun_skipped;
268    pub use super::testcaserun_started_0_2_0 as testcaserun_started;
269    pub use super::testoutput_published_0_2_0 as testoutput_published;
270    pub use super::testsuiterun_finished_0_2_0 as testsuiterun_finished;
271    pub use super::testsuiterun_queued_0_2_0 as testsuiterun_queued;
272    pub use super::testsuiterun_started_0_2_0 as testsuiterun_started;
273    pub use super::ticket_closed_0_1_0 as ticket_closed;
274    pub use super::ticket_created_0_1_0 as ticket_created;
275    pub use super::ticket_updated_0_1_0 as ticket_updated;
276}
277pub mod spec_0_5_1 {
278    pub use super::artifact_deleted_0_2_0 as artifact_deleted;
279    pub use super::artifact_downloaded_0_2_0 as artifact_downloaded;
280    pub use super::artifact_packaged_0_3_0 as artifact_packaged;
281    pub use super::artifact_published_0_3_0 as artifact_published;
282    pub use super::artifact_signed_0_3_0 as artifact_signed;
283    pub use super::branch_created_0_3_0 as branch_created;
284    pub use super::branch_deleted_0_3_0 as branch_deleted;
285    pub use super::build_finished_0_3_0 as build_finished;
286    pub use super::build_queued_0_3_0 as build_queued;
287    pub use super::build_started_0_3_0 as build_started;
288    pub use super::change_abandoned_0_3_0 as change_abandoned;
289    pub use super::change_created_0_4_0 as change_created;
290    pub use super::change_merged_0_3_0 as change_merged;
291    pub use super::change_reviewed_0_3_0 as change_reviewed;
292    pub use super::change_updated_0_3_0 as change_updated;
293    pub use super::environment_created_0_3_0 as environment_created;
294    pub use super::environment_deleted_0_3_0 as environment_deleted;
295    pub use super::environment_modified_0_3_0 as environment_modified;
296    pub use super::incident_detected_0_3_0 as incident_detected;
297    pub use super::incident_reported_0_3_0 as incident_reported;
298    pub use super::incident_resolved_0_3_0 as incident_resolved;
299    pub use super::pipelinerun_finished_0_3_0 as pipelinerun_finished;
300    pub use super::pipelinerun_queued_0_3_0 as pipelinerun_queued;
301    pub use super::pipelinerun_started_0_3_0 as pipelinerun_started;
302    pub use super::repository_created_0_3_0 as repository_created;
303    pub use super::repository_deleted_0_3_0 as repository_deleted;
304    pub use super::repository_modified_0_3_0 as repository_modified;
305    pub use super::service_deployed_0_3_0 as service_deployed;
306    pub use super::service_published_0_3_0 as service_published;
307    pub use super::service_removed_0_3_0 as service_removed;
308    pub use super::service_rolledback_0_3_0 as service_rolledback;
309    pub use super::service_upgraded_0_3_0 as service_upgraded;
310    pub use super::taskrun_finished_0_3_0 as taskrun_finished;
311    pub use super::taskrun_started_0_3_0 as taskrun_started;
312    pub use super::testcaserun_finished_0_3_0 as testcaserun_finished;
313    pub use super::testcaserun_queued_0_3_0 as testcaserun_queued;
314    pub use super::testcaserun_skipped_0_2_0 as testcaserun_skipped;
315    pub use super::testcaserun_started_0_3_0 as testcaserun_started;
316    pub use super::testoutput_published_0_3_0 as testoutput_published;
317    pub use super::testsuiterun_finished_0_3_0 as testsuiterun_finished;
318    pub use super::testsuiterun_queued_0_3_0 as testsuiterun_queued;
319    pub use super::testsuiterun_started_0_3_0 as testsuiterun_started;
320    pub use super::ticket_closed_0_2_0 as ticket_closed;
321    pub use super::ticket_created_0_2_0 as ticket_created;
322    pub use super::ticket_updated_0_2_0 as ticket_updated;
323}
324pub mod spec_0_6_0_draft {
325    pub use super::approval_closed_0_1_0 as approval_closed;
326    pub use super::approval_created_0_1_0 as approval_created;
327    pub use super::approval_updated_0_1_0 as approval_updated;
328    pub use super::artifact_deleted_0_2_0 as artifact_deleted;
329    pub use super::artifact_downloaded_0_2_0 as artifact_downloaded;
330    pub use super::artifact_packaged_0_3_0 as artifact_packaged;
331    pub use super::artifact_published_0_3_0 as artifact_published;
332    pub use super::artifact_signed_0_3_0 as artifact_signed;
333    pub use super::branch_created_0_3_0 as branch_created;
334    pub use super::branch_deleted_0_3_0 as branch_deleted;
335    pub use super::build_finished_0_3_0 as build_finished;
336    pub use super::build_queued_0_3_0 as build_queued;
337    pub use super::build_started_0_3_0 as build_started;
338    pub use super::change_abandoned_0_3_0 as change_abandoned;
339    pub use super::change_created_0_4_0 as change_created;
340    pub use super::change_merged_0_3_0 as change_merged;
341    pub use super::change_reviewed_0_3_0 as change_reviewed;
342    pub use super::change_updated_0_3_0 as change_updated;
343    pub use super::environment_created_0_3_0 as environment_created;
344    pub use super::environment_deleted_0_3_0 as environment_deleted;
345    pub use super::environment_modified_0_3_0 as environment_modified;
346    pub use super::incident_detected_0_3_0 as incident_detected;
347    pub use super::incident_reported_0_3_0 as incident_reported;
348    pub use super::incident_resolved_0_3_0 as incident_resolved;
349    pub use super::pipelinerun_finished_0_3_0 as pipelinerun_finished;
350    pub use super::pipelinerun_queued_0_3_0 as pipelinerun_queued;
351    pub use super::pipelinerun_started_0_3_0 as pipelinerun_started;
352    pub use super::repository_created_0_3_0 as repository_created;
353    pub use super::repository_deleted_0_3_0 as repository_deleted;
354    pub use super::repository_modified_0_3_0 as repository_modified;
355    pub use super::service_deployed_0_3_0 as service_deployed;
356    pub use super::service_published_0_3_0 as service_published;
357    pub use super::service_removed_0_3_0 as service_removed;
358    pub use super::service_rolledback_0_3_0 as service_rolledback;
359    pub use super::service_upgraded_0_3_0 as service_upgraded;
360    pub use super::taskrun_finished_0_3_0 as taskrun_finished;
361    pub use super::taskrun_started_0_3_0 as taskrun_started;
362    pub use super::testcaserun_finished_0_3_0 as testcaserun_finished;
363    pub use super::testcaserun_queued_0_3_0 as testcaserun_queued;
364    pub use super::testcaserun_skipped_0_2_0 as testcaserun_skipped;
365    pub use super::testcaserun_started_0_3_0 as testcaserun_started;
366    pub use super::testoutput_published_0_3_0 as testoutput_published;
367    pub use super::testsuiterun_finished_0_3_0 as testsuiterun_finished;
368    pub use super::testsuiterun_queued_0_3_0 as testsuiterun_queued;
369    pub use super::testsuiterun_started_0_3_0 as testsuiterun_started;
370    pub use super::ticket_closed_0_2_0 as ticket_closed;
371    pub use super::ticket_created_0_2_0 as ticket_created;
372    pub use super::ticket_updated_0_2_0 as ticket_updated;
373}
374
375pub const APPROVAL_CLOSED_0_1_0: &str = "dev.cdevents.approval.closed.0.1.0";
376pub const APPROVAL_CREATED_0_1_0: &str = "dev.cdevents.approval.created.0.1.0";
377pub const APPROVAL_UPDATED_0_1_0: &str = "dev.cdevents.approval.updated.0.1.0";
378pub const ARTIFACT_DELETED_0_2_0: &str = "dev.cdevents.artifact.deleted.0.2.0";
379pub const ARTIFACT_DELETED_0_1_0: &str = "dev.cdevents.artifact.deleted.0.1.0";
380pub const ARTIFACT_DOWNLOADED_0_2_0: &str = "dev.cdevents.artifact.downloaded.0.2.0";
381pub const ARTIFACT_DOWNLOADED_0_1_0: &str = "dev.cdevents.artifact.downloaded.0.1.0";
382pub const ARTIFACT_PACKAGED_0_3_0: &str = "dev.cdevents.artifact.packaged.0.3.0";
383pub const ARTIFACT_PACKAGED_0_1_1: &str = "dev.cdevents.artifact.packaged.0.1.1";
384pub const ARTIFACT_PACKAGED_0_2_0: &str = "dev.cdevents.artifact.packaged.0.2.0";
385pub const ARTIFACT_PUBLISHED_0_3_0: &str = "dev.cdevents.artifact.published.0.3.0";
386pub const ARTIFACT_PUBLISHED_0_1_1: &str = "dev.cdevents.artifact.published.0.1.1";
387pub const ARTIFACT_PUBLISHED_0_2_0: &str = "dev.cdevents.artifact.published.0.2.0";
388pub const ARTIFACT_SIGNED_0_3_0: &str = "dev.cdevents.artifact.signed.0.3.0";
389pub const ARTIFACT_SIGNED_0_1_0: &str = "dev.cdevents.artifact.signed.0.1.0";
390pub const ARTIFACT_SIGNED_0_2_0: &str = "dev.cdevents.artifact.signed.0.2.0";
391pub const BRANCH_CREATED_0_3_0: &str = "dev.cdevents.branch.created.0.3.0";
392pub const BRANCH_CREATED_0_1_2: &str = "dev.cdevents.branch.created.0.1.2";
393pub const BRANCH_CREATED_0_2_0: &str = "dev.cdevents.branch.created.0.2.0";
394pub const BRANCH_DELETED_0_3_0: &str = "dev.cdevents.branch.deleted.0.3.0";
395pub const BRANCH_DELETED_0_1_2: &str = "dev.cdevents.branch.deleted.0.1.2";
396pub const BRANCH_DELETED_0_2_0: &str = "dev.cdevents.branch.deleted.0.2.0";
397pub const BUILD_FINISHED_0_3_0: &str = "dev.cdevents.build.finished.0.3.0";
398pub const BUILD_FINISHED_0_1_1: &str = "dev.cdevents.build.finished.0.1.1";
399pub const BUILD_FINISHED_0_2_0: &str = "dev.cdevents.build.finished.0.2.0";
400pub const BUILD_QUEUED_0_3_0: &str = "dev.cdevents.build.queued.0.3.0";
401pub const BUILD_QUEUED_0_1_1: &str = "dev.cdevents.build.queued.0.1.1";
402pub const BUILD_QUEUED_0_2_0: &str = "dev.cdevents.build.queued.0.2.0";
403pub const BUILD_STARTED_0_3_0: &str = "dev.cdevents.build.started.0.3.0";
404pub const BUILD_STARTED_0_1_1: &str = "dev.cdevents.build.started.0.1.1";
405pub const BUILD_STARTED_0_2_0: &str = "dev.cdevents.build.started.0.2.0";
406pub const CHANGE_ABANDONED_0_3_0: &str = "dev.cdevents.change.abandoned.0.3.0";
407pub const CHANGE_ABANDONED_0_1_2: &str = "dev.cdevents.change.abandoned.0.1.2";
408pub const CHANGE_ABANDONED_0_2_0: &str = "dev.cdevents.change.abandoned.0.2.0";
409pub const CHANGE_CREATED_0_4_0: &str = "dev.cdevents.change.created.0.4.0";
410pub const CHANGE_CREATED_0_1_2: &str = "dev.cdevents.change.created.0.1.2";
411pub const CHANGE_CREATED_0_3_0: &str = "dev.cdevents.change.created.0.3.0";
412pub const CHANGE_MERGED_0_3_0: &str = "dev.cdevents.change.merged.0.3.0";
413pub const CHANGE_MERGED_0_1_2: &str = "dev.cdevents.change.merged.0.1.2";
414pub const CHANGE_MERGED_0_2_0: &str = "dev.cdevents.change.merged.0.2.0";
415pub const CHANGE_REVIEWED_0_3_0: &str = "dev.cdevents.change.reviewed.0.3.0";
416pub const CHANGE_REVIEWED_0_1_2: &str = "dev.cdevents.change.reviewed.0.1.2";
417pub const CHANGE_REVIEWED_0_2_0: &str = "dev.cdevents.change.reviewed.0.2.0";
418pub const CHANGE_UPDATED_0_3_0: &str = "dev.cdevents.change.updated.0.3.0";
419pub const CHANGE_UPDATED_0_1_2: &str = "dev.cdevents.change.updated.0.1.2";
420pub const CHANGE_UPDATED_0_2_0: &str = "dev.cdevents.change.updated.0.2.0";
421pub const ENVIRONMENT_CREATED_0_3_0: &str = "dev.cdevents.environment.created.0.3.0";
422pub const ENVIRONMENT_CREATED_0_1_1: &str = "dev.cdevents.environment.created.0.1.1";
423pub const ENVIRONMENT_CREATED_0_2_0: &str = "dev.cdevents.environment.created.0.2.0";
424pub const ENVIRONMENT_DELETED_0_3_0: &str = "dev.cdevents.environment.deleted.0.3.0";
425pub const ENVIRONMENT_DELETED_0_1_1: &str = "dev.cdevents.environment.deleted.0.1.1";
426pub const ENVIRONMENT_DELETED_0_2_0: &str = "dev.cdevents.environment.deleted.0.2.0";
427pub const ENVIRONMENT_MODIFIED_0_3_0: &str = "dev.cdevents.environment.modified.0.3.0";
428pub const ENVIRONMENT_MODIFIED_0_1_1: &str = "dev.cdevents.environment.modified.0.1.1";
429pub const ENVIRONMENT_MODIFIED_0_2_0: &str = "dev.cdevents.environment.modified.0.2.0";
430pub const INCIDENT_DETECTED_0_3_0: &str = "dev.cdevents.incident.detected.0.3.0";
431pub const INCIDENT_DETECTED_0_1_0: &str = "dev.cdevents.incident.detected.0.1.0";
432pub const INCIDENT_DETECTED_0_2_0: &str = "dev.cdevents.incident.detected.0.2.0";
433pub const INCIDENT_REPORTED_0_3_0: &str = "dev.cdevents.incident.reported.0.3.0";
434pub const INCIDENT_REPORTED_0_1_0: &str = "dev.cdevents.incident.reported.0.1.0";
435pub const INCIDENT_REPORTED_0_2_0: &str = "dev.cdevents.incident.reported.0.2.0";
436pub const INCIDENT_RESOLVED_0_3_0: &str = "dev.cdevents.incident.resolved.0.3.0";
437pub const INCIDENT_RESOLVED_0_1_0: &str = "dev.cdevents.incident.resolved.0.1.0";
438pub const INCIDENT_RESOLVED_0_2_0: &str = "dev.cdevents.incident.resolved.0.2.0";
439pub const PIPELINERUN_FINISHED_0_3_0: &str = "dev.cdevents.pipelinerun.finished.0.3.0";
440pub const PIPELINERUN_FINISHED_0_1_1: &str = "dev.cdevents.pipelinerun.finished.0.1.1";
441pub const PIPELINERUN_FINISHED_0_2_0: &str = "dev.cdevents.pipelinerun.finished.0.2.0";
442pub const PIPELINERUN_QUEUED_0_3_0: &str = "dev.cdevents.pipelinerun.queued.0.3.0";
443pub const PIPELINERUN_QUEUED_0_1_1: &str = "dev.cdevents.pipelinerun.queued.0.1.1";
444pub const PIPELINERUN_QUEUED_0_2_0: &str = "dev.cdevents.pipelinerun.queued.0.2.0";
445pub const PIPELINERUN_STARTED_0_3_0: &str = "dev.cdevents.pipelinerun.started.0.3.0";
446pub const PIPELINERUN_STARTED_0_1_1: &str = "dev.cdevents.pipelinerun.started.0.1.1";
447pub const PIPELINERUN_STARTED_0_2_0: &str = "dev.cdevents.pipelinerun.started.0.2.0";
448pub const REPOSITORY_CREATED_0_3_0: &str = "dev.cdevents.repository.created.0.3.0";
449pub const REPOSITORY_CREATED_0_1_1: &str = "dev.cdevents.repository.created.0.1.1";
450pub const REPOSITORY_CREATED_0_2_0: &str = "dev.cdevents.repository.created.0.2.0";
451pub const REPOSITORY_DELETED_0_3_0: &str = "dev.cdevents.repository.deleted.0.3.0";
452pub const REPOSITORY_DELETED_0_1_1: &str = "dev.cdevents.repository.deleted.0.1.1";
453pub const REPOSITORY_DELETED_0_2_0: &str = "dev.cdevents.repository.deleted.0.2.0";
454pub const REPOSITORY_MODIFIED_0_3_0: &str = "dev.cdevents.repository.modified.0.3.0";
455pub const REPOSITORY_MODIFIED_0_1_1: &str = "dev.cdevents.repository.modified.0.1.1";
456pub const REPOSITORY_MODIFIED_0_2_0: &str = "dev.cdevents.repository.modified.0.2.0";
457pub const SERVICE_DEPLOYED_0_3_0: &str = "dev.cdevents.service.deployed.0.3.0";
458pub const SERVICE_DEPLOYED_0_1_1: &str = "dev.cdevents.service.deployed.0.1.1";
459pub const SERVICE_DEPLOYED_0_2_0: &str = "dev.cdevents.service.deployed.0.2.0";
460pub const SERVICE_PUBLISHED_0_3_0: &str = "dev.cdevents.service.published.0.3.0";
461pub const SERVICE_PUBLISHED_0_1_1: &str = "dev.cdevents.service.published.0.1.1";
462pub const SERVICE_PUBLISHED_0_2_0: &str = "dev.cdevents.service.published.0.2.0";
463pub const SERVICE_REMOVED_0_3_0: &str = "dev.cdevents.service.removed.0.3.0";
464pub const SERVICE_REMOVED_0_1_1: &str = "dev.cdevents.service.removed.0.1.1";
465pub const SERVICE_REMOVED_0_2_0: &str = "dev.cdevents.service.removed.0.2.0";
466pub const SERVICE_ROLLEDBACK_0_3_0: &str = "dev.cdevents.service.rolledback.0.3.0";
467pub const SERVICE_ROLLEDBACK_0_1_1: &str = "dev.cdevents.service.rolledback.0.1.1";
468pub const SERVICE_ROLLEDBACK_0_2_0: &str = "dev.cdevents.service.rolledback.0.2.0";
469pub const SERVICE_UPGRADED_0_3_0: &str = "dev.cdevents.service.upgraded.0.3.0";
470pub const SERVICE_UPGRADED_0_1_1: &str = "dev.cdevents.service.upgraded.0.1.1";
471pub const SERVICE_UPGRADED_0_2_0: &str = "dev.cdevents.service.upgraded.0.2.0";
472pub const TASKRUN_FINISHED_0_3_0: &str = "dev.cdevents.taskrun.finished.0.3.0";
473pub const TASKRUN_FINISHED_0_1_1: &str = "dev.cdevents.taskrun.finished.0.1.1";
474pub const TASKRUN_FINISHED_0_2_0: &str = "dev.cdevents.taskrun.finished.0.2.0";
475pub const TASKRUN_STARTED_0_3_0: &str = "dev.cdevents.taskrun.started.0.3.0";
476pub const TASKRUN_STARTED_0_1_1: &str = "dev.cdevents.taskrun.started.0.1.1";
477pub const TASKRUN_STARTED_0_2_0: &str = "dev.cdevents.taskrun.started.0.2.0";
478pub const TESTCASERUN_FINISHED_0_3_0: &str = "dev.cdevents.testcaserun.finished.0.3.0";
479pub const TESTCASERUN_FINISHED_0_1_0: &str = "dev.cdevents.testcaserun.finished.0.1.0";
480pub const TESTCASERUN_FINISHED_0_2_0: &str = "dev.cdevents.testcaserun.finished.0.2.0";
481pub const TESTCASERUN_QUEUED_0_3_0: &str = "dev.cdevents.testcaserun.queued.0.3.0";
482pub const TESTCASERUN_QUEUED_0_1_0: &str = "dev.cdevents.testcaserun.queued.0.1.0";
483pub const TESTCASERUN_QUEUED_0_2_0: &str = "dev.cdevents.testcaserun.queued.0.2.0";
484pub const TESTCASERUN_SKIPPED_0_2_0: &str = "dev.cdevents.testcaserun.skipped.0.2.0";
485pub const TESTCASERUN_SKIPPED_0_1_0: &str = "dev.cdevents.testcaserun.skipped.0.1.0";
486pub const TESTCASERUN_STARTED_0_3_0: &str = "dev.cdevents.testcaserun.started.0.3.0";
487pub const TESTCASERUN_STARTED_0_1_0: &str = "dev.cdevents.testcaserun.started.0.1.0";
488pub const TESTCASERUN_STARTED_0_2_0: &str = "dev.cdevents.testcaserun.started.0.2.0";
489pub const TESTOUTPUT_PUBLISHED_0_3_0: &str = "dev.cdevents.testoutput.published.0.3.0";
490pub const TESTOUTPUT_PUBLISHED_0_1_0: &str = "dev.cdevents.testoutput.published.0.1.0";
491pub const TESTOUTPUT_PUBLISHED_0_2_0: &str = "dev.cdevents.testoutput.published.0.2.0";
492pub const TESTSUITERUN_FINISHED_0_3_0: &str = "dev.cdevents.testsuiterun.finished.0.3.0";
493pub const TESTSUITERUN_FINISHED_0_1_0: &str = "dev.cdevents.testsuiterun.finished.0.1.0";
494pub const TESTSUITERUN_FINISHED_0_2_0: &str = "dev.cdevents.testsuiterun.finished.0.2.0";
495pub const TESTSUITERUN_QUEUED_0_3_0: &str = "dev.cdevents.testsuiterun.queued.0.3.0";
496pub const TESTSUITERUN_QUEUED_0_1_0: &str = "dev.cdevents.testsuiterun.queued.0.1.0";
497pub const TESTSUITERUN_QUEUED_0_2_0: &str = "dev.cdevents.testsuiterun.queued.0.2.0";
498pub const TESTSUITERUN_STARTED_0_3_0: &str = "dev.cdevents.testsuiterun.started.0.3.0";
499pub const TESTSUITERUN_STARTED_0_1_0: &str = "dev.cdevents.testsuiterun.started.0.1.0";
500pub const TESTSUITERUN_STARTED_0_2_0: &str = "dev.cdevents.testsuiterun.started.0.2.0";
501pub const TICKET_CLOSED_0_2_0: &str = "dev.cdevents.ticket.closed.0.2.0";
502pub const TICKET_CLOSED_0_1_0: &str = "dev.cdevents.ticket.closed.0.1.0";
503pub const TICKET_CREATED_0_2_0: &str = "dev.cdevents.ticket.created.0.2.0";
504pub const TICKET_CREATED_0_1_0: &str = "dev.cdevents.ticket.created.0.1.0";
505pub const TICKET_UPDATED_0_2_0: &str = "dev.cdevents.ticket.updated.0.2.0";
506pub const TICKET_UPDATED_0_1_0: &str = "dev.cdevents.ticket.updated.0.1.0";
507
508#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
509#[serde(untagged)] // TODO how to use content of context.type as discriminator ?
510pub enum Content {
511    ApprovalClosed010(approval_closed_0_1_0::Content),
512    ApprovalCreated010(approval_created_0_1_0::Content),
513    ApprovalUpdated010(approval_updated_0_1_0::Content),
514    ArtifactDeleted020(artifact_deleted_0_2_0::Content),
515    ArtifactDeleted010(artifact_deleted_0_1_0::Content),
516    ArtifactDownloaded020(artifact_downloaded_0_2_0::Content),
517    ArtifactDownloaded010(artifact_downloaded_0_1_0::Content),
518    ArtifactPackaged030(artifact_packaged_0_3_0::Content),
519    ArtifactPackaged011(artifact_packaged_0_1_1::Content),
520    ArtifactPackaged020(artifact_packaged_0_2_0::Content),
521    ArtifactPublished030(artifact_published_0_3_0::Content),
522    ArtifactPublished011(artifact_published_0_1_1::Content),
523    ArtifactPublished020(artifact_published_0_2_0::Content),
524    ArtifactSigned030(artifact_signed_0_3_0::Content),
525    ArtifactSigned010(artifact_signed_0_1_0::Content),
526    ArtifactSigned020(artifact_signed_0_2_0::Content),
527    BranchCreated030(branch_created_0_3_0::Content),
528    BranchCreated012(branch_created_0_1_2::Content),
529    BranchCreated020(branch_created_0_2_0::Content),
530    BranchDeleted030(branch_deleted_0_3_0::Content),
531    BranchDeleted012(branch_deleted_0_1_2::Content),
532    BranchDeleted020(branch_deleted_0_2_0::Content),
533    BuildFinished030(build_finished_0_3_0::Content),
534    BuildFinished011(build_finished_0_1_1::Content),
535    BuildFinished020(build_finished_0_2_0::Content),
536    BuildQueued030(build_queued_0_3_0::Content),
537    BuildQueued011(build_queued_0_1_1::Content),
538    BuildQueued020(build_queued_0_2_0::Content),
539    BuildStarted030(build_started_0_3_0::Content),
540    BuildStarted011(build_started_0_1_1::Content),
541    BuildStarted020(build_started_0_2_0::Content),
542    ChangeAbandoned030(change_abandoned_0_3_0::Content),
543    ChangeAbandoned012(change_abandoned_0_1_2::Content),
544    ChangeAbandoned020(change_abandoned_0_2_0::Content),
545    ChangeCreated040(change_created_0_4_0::Content),
546    ChangeCreated012(change_created_0_1_2::Content),
547    ChangeCreated030(change_created_0_3_0::Content),
548    ChangeMerged030(change_merged_0_3_0::Content),
549    ChangeMerged012(change_merged_0_1_2::Content),
550    ChangeMerged020(change_merged_0_2_0::Content),
551    ChangeReviewed030(change_reviewed_0_3_0::Content),
552    ChangeReviewed012(change_reviewed_0_1_2::Content),
553    ChangeReviewed020(change_reviewed_0_2_0::Content),
554    ChangeUpdated030(change_updated_0_3_0::Content),
555    ChangeUpdated012(change_updated_0_1_2::Content),
556    ChangeUpdated020(change_updated_0_2_0::Content),
557    EnvironmentCreated030(environment_created_0_3_0::Content),
558    EnvironmentCreated011(environment_created_0_1_1::Content),
559    EnvironmentCreated020(environment_created_0_2_0::Content),
560    EnvironmentDeleted030(environment_deleted_0_3_0::Content),
561    EnvironmentDeleted011(environment_deleted_0_1_1::Content),
562    EnvironmentDeleted020(environment_deleted_0_2_0::Content),
563    EnvironmentModified030(environment_modified_0_3_0::Content),
564    EnvironmentModified011(environment_modified_0_1_1::Content),
565    EnvironmentModified020(environment_modified_0_2_0::Content),
566    IncidentDetected030(incident_detected_0_3_0::Content),
567    IncidentDetected010(incident_detected_0_1_0::Content),
568    IncidentDetected020(incident_detected_0_2_0::Content),
569    IncidentReported030(incident_reported_0_3_0::Content),
570    IncidentReported010(incident_reported_0_1_0::Content),
571    IncidentReported020(incident_reported_0_2_0::Content),
572    IncidentResolved030(incident_resolved_0_3_0::Content),
573    IncidentResolved010(incident_resolved_0_1_0::Content),
574    IncidentResolved020(incident_resolved_0_2_0::Content),
575    PipelinerunFinished030(pipelinerun_finished_0_3_0::Content),
576    PipelinerunFinished011(pipelinerun_finished_0_1_1::Content),
577    PipelinerunFinished020(pipelinerun_finished_0_2_0::Content),
578    PipelinerunQueued030(pipelinerun_queued_0_3_0::Content),
579    PipelinerunQueued011(pipelinerun_queued_0_1_1::Content),
580    PipelinerunQueued020(pipelinerun_queued_0_2_0::Content),
581    PipelinerunStarted030(pipelinerun_started_0_3_0::Content),
582    PipelinerunStarted011(pipelinerun_started_0_1_1::Content),
583    PipelinerunStarted020(pipelinerun_started_0_2_0::Content),
584    RepositoryCreated030(repository_created_0_3_0::Content),
585    RepositoryCreated011(repository_created_0_1_1::Content),
586    RepositoryCreated020(repository_created_0_2_0::Content),
587    RepositoryDeleted030(repository_deleted_0_3_0::Content),
588    RepositoryDeleted011(repository_deleted_0_1_1::Content),
589    RepositoryDeleted020(repository_deleted_0_2_0::Content),
590    RepositoryModified030(repository_modified_0_3_0::Content),
591    RepositoryModified011(repository_modified_0_1_1::Content),
592    RepositoryModified020(repository_modified_0_2_0::Content),
593    ServiceDeployed030(service_deployed_0_3_0::Content),
594    ServiceDeployed011(service_deployed_0_1_1::Content),
595    ServiceDeployed020(service_deployed_0_2_0::Content),
596    ServicePublished030(service_published_0_3_0::Content),
597    ServicePublished011(service_published_0_1_1::Content),
598    ServicePublished020(service_published_0_2_0::Content),
599    ServiceRemoved030(service_removed_0_3_0::Content),
600    ServiceRemoved011(service_removed_0_1_1::Content),
601    ServiceRemoved020(service_removed_0_2_0::Content),
602    ServiceRolledback030(service_rolledback_0_3_0::Content),
603    ServiceRolledback011(service_rolledback_0_1_1::Content),
604    ServiceRolledback020(service_rolledback_0_2_0::Content),
605    ServiceUpgraded030(service_upgraded_0_3_0::Content),
606    ServiceUpgraded011(service_upgraded_0_1_1::Content),
607    ServiceUpgraded020(service_upgraded_0_2_0::Content),
608    TaskrunFinished030(taskrun_finished_0_3_0::Content),
609    TaskrunFinished011(taskrun_finished_0_1_1::Content),
610    TaskrunFinished020(taskrun_finished_0_2_0::Content),
611    TaskrunStarted030(taskrun_started_0_3_0::Content),
612    TaskrunStarted011(taskrun_started_0_1_1::Content),
613    TaskrunStarted020(taskrun_started_0_2_0::Content),
614    TestcaserunFinished030(testcaserun_finished_0_3_0::Content),
615    TestcaserunFinished010(testcaserun_finished_0_1_0::Content),
616    TestcaserunFinished020(testcaserun_finished_0_2_0::Content),
617    TestcaserunQueued030(testcaserun_queued_0_3_0::Content),
618    TestcaserunQueued010(testcaserun_queued_0_1_0::Content),
619    TestcaserunQueued020(testcaserun_queued_0_2_0::Content),
620    TestcaserunSkipped020(testcaserun_skipped_0_2_0::Content),
621    TestcaserunSkipped010(testcaserun_skipped_0_1_0::Content),
622    TestcaserunStarted030(testcaserun_started_0_3_0::Content),
623    TestcaserunStarted010(testcaserun_started_0_1_0::Content),
624    TestcaserunStarted020(testcaserun_started_0_2_0::Content),
625    TestoutputPublished030(testoutput_published_0_3_0::Content),
626    TestoutputPublished010(testoutput_published_0_1_0::Content),
627    TestoutputPublished020(testoutput_published_0_2_0::Content),
628    TestsuiterunFinished030(testsuiterun_finished_0_3_0::Content),
629    TestsuiterunFinished010(testsuiterun_finished_0_1_0::Content),
630    TestsuiterunFinished020(testsuiterun_finished_0_2_0::Content),
631    TestsuiterunQueued030(testsuiterun_queued_0_3_0::Content),
632    TestsuiterunQueued010(testsuiterun_queued_0_1_0::Content),
633    TestsuiterunQueued020(testsuiterun_queued_0_2_0::Content),
634    TestsuiterunStarted030(testsuiterun_started_0_3_0::Content),
635    TestsuiterunStarted010(testsuiterun_started_0_1_0::Content),
636    TestsuiterunStarted020(testsuiterun_started_0_2_0::Content),
637    TicketClosed020(ticket_closed_0_2_0::Content),
638    TicketClosed010(ticket_closed_0_1_0::Content),
639    TicketCreated020(ticket_created_0_2_0::Content),
640    TicketCreated010(ticket_created_0_1_0::Content),
641    TicketUpdated020(ticket_updated_0_2_0::Content),
642    TicketUpdated010(ticket_updated_0_1_0::Content),
643    Custom{
644      #[serde(skip)]
645      ty: String,
646      #[serde(flatten)]
647      json: serde_json::Value,
648    },
649}
650
651impl Content {
652    pub fn from_json(ty: &str, json: serde_json::Value) -> Result<Self, serde_json::Error>{
653        match ty {
654            APPROVAL_CLOSED_0_1_0 => {
655                let variant: approval_closed_0_1_0::Content = serde_json::from_value(json)?;
656                Ok(variant.into())
657            },
658            APPROVAL_CREATED_0_1_0 => {
659                let variant: approval_created_0_1_0::Content = serde_json::from_value(json)?;
660                Ok(variant.into())
661            },
662            APPROVAL_UPDATED_0_1_0 => {
663                let variant: approval_updated_0_1_0::Content = serde_json::from_value(json)?;
664                Ok(variant.into())
665            },
666            ARTIFACT_DELETED_0_2_0 => {
667                let variant: artifact_deleted_0_2_0::Content = serde_json::from_value(json)?;
668                Ok(variant.into())
669            },
670            ARTIFACT_DELETED_0_1_0 => {
671                let variant: artifact_deleted_0_1_0::Content = serde_json::from_value(json)?;
672                Ok(variant.into())
673            },
674            ARTIFACT_DOWNLOADED_0_2_0 => {
675                let variant: artifact_downloaded_0_2_0::Content = serde_json::from_value(json)?;
676                Ok(variant.into())
677            },
678            ARTIFACT_DOWNLOADED_0_1_0 => {
679                let variant: artifact_downloaded_0_1_0::Content = serde_json::from_value(json)?;
680                Ok(variant.into())
681            },
682            ARTIFACT_PACKAGED_0_3_0 => {
683                let variant: artifact_packaged_0_3_0::Content = serde_json::from_value(json)?;
684                Ok(variant.into())
685            },
686            ARTIFACT_PACKAGED_0_1_1 => {
687                let variant: artifact_packaged_0_1_1::Content = serde_json::from_value(json)?;
688                Ok(variant.into())
689            },
690            ARTIFACT_PACKAGED_0_2_0 => {
691                let variant: artifact_packaged_0_2_0::Content = serde_json::from_value(json)?;
692                Ok(variant.into())
693            },
694            ARTIFACT_PUBLISHED_0_3_0 => {
695                let variant: artifact_published_0_3_0::Content = serde_json::from_value(json)?;
696                Ok(variant.into())
697            },
698            ARTIFACT_PUBLISHED_0_1_1 => {
699                let variant: artifact_published_0_1_1::Content = serde_json::from_value(json)?;
700                Ok(variant.into())
701            },
702            ARTIFACT_PUBLISHED_0_2_0 => {
703                let variant: artifact_published_0_2_0::Content = serde_json::from_value(json)?;
704                Ok(variant.into())
705            },
706            ARTIFACT_SIGNED_0_3_0 => {
707                let variant: artifact_signed_0_3_0::Content = serde_json::from_value(json)?;
708                Ok(variant.into())
709            },
710            ARTIFACT_SIGNED_0_1_0 => {
711                let variant: artifact_signed_0_1_0::Content = serde_json::from_value(json)?;
712                Ok(variant.into())
713            },
714            ARTIFACT_SIGNED_0_2_0 => {
715                let variant: artifact_signed_0_2_0::Content = serde_json::from_value(json)?;
716                Ok(variant.into())
717            },
718            BRANCH_CREATED_0_3_0 => {
719                let variant: branch_created_0_3_0::Content = serde_json::from_value(json)?;
720                Ok(variant.into())
721            },
722            BRANCH_CREATED_0_1_2 => {
723                let variant: branch_created_0_1_2::Content = serde_json::from_value(json)?;
724                Ok(variant.into())
725            },
726            BRANCH_CREATED_0_2_0 => {
727                let variant: branch_created_0_2_0::Content = serde_json::from_value(json)?;
728                Ok(variant.into())
729            },
730            BRANCH_DELETED_0_3_0 => {
731                let variant: branch_deleted_0_3_0::Content = serde_json::from_value(json)?;
732                Ok(variant.into())
733            },
734            BRANCH_DELETED_0_1_2 => {
735                let variant: branch_deleted_0_1_2::Content = serde_json::from_value(json)?;
736                Ok(variant.into())
737            },
738            BRANCH_DELETED_0_2_0 => {
739                let variant: branch_deleted_0_2_0::Content = serde_json::from_value(json)?;
740                Ok(variant.into())
741            },
742            BUILD_FINISHED_0_3_0 => {
743                let variant: build_finished_0_3_0::Content = serde_json::from_value(json)?;
744                Ok(variant.into())
745            },
746            BUILD_FINISHED_0_1_1 => {
747                let variant: build_finished_0_1_1::Content = serde_json::from_value(json)?;
748                Ok(variant.into())
749            },
750            BUILD_FINISHED_0_2_0 => {
751                let variant: build_finished_0_2_0::Content = serde_json::from_value(json)?;
752                Ok(variant.into())
753            },
754            BUILD_QUEUED_0_3_0 => {
755                let variant: build_queued_0_3_0::Content = serde_json::from_value(json)?;
756                Ok(variant.into())
757            },
758            BUILD_QUEUED_0_1_1 => {
759                let variant: build_queued_0_1_1::Content = serde_json::from_value(json)?;
760                Ok(variant.into())
761            },
762            BUILD_QUEUED_0_2_0 => {
763                let variant: build_queued_0_2_0::Content = serde_json::from_value(json)?;
764                Ok(variant.into())
765            },
766            BUILD_STARTED_0_3_0 => {
767                let variant: build_started_0_3_0::Content = serde_json::from_value(json)?;
768                Ok(variant.into())
769            },
770            BUILD_STARTED_0_1_1 => {
771                let variant: build_started_0_1_1::Content = serde_json::from_value(json)?;
772                Ok(variant.into())
773            },
774            BUILD_STARTED_0_2_0 => {
775                let variant: build_started_0_2_0::Content = serde_json::from_value(json)?;
776                Ok(variant.into())
777            },
778            CHANGE_ABANDONED_0_3_0 => {
779                let variant: change_abandoned_0_3_0::Content = serde_json::from_value(json)?;
780                Ok(variant.into())
781            },
782            CHANGE_ABANDONED_0_1_2 => {
783                let variant: change_abandoned_0_1_2::Content = serde_json::from_value(json)?;
784                Ok(variant.into())
785            },
786            CHANGE_ABANDONED_0_2_0 => {
787                let variant: change_abandoned_0_2_0::Content = serde_json::from_value(json)?;
788                Ok(variant.into())
789            },
790            CHANGE_CREATED_0_4_0 => {
791                let variant: change_created_0_4_0::Content = serde_json::from_value(json)?;
792                Ok(variant.into())
793            },
794            CHANGE_CREATED_0_1_2 => {
795                let variant: change_created_0_1_2::Content = serde_json::from_value(json)?;
796                Ok(variant.into())
797            },
798            CHANGE_CREATED_0_3_0 => {
799                let variant: change_created_0_3_0::Content = serde_json::from_value(json)?;
800                Ok(variant.into())
801            },
802            CHANGE_MERGED_0_3_0 => {
803                let variant: change_merged_0_3_0::Content = serde_json::from_value(json)?;
804                Ok(variant.into())
805            },
806            CHANGE_MERGED_0_1_2 => {
807                let variant: change_merged_0_1_2::Content = serde_json::from_value(json)?;
808                Ok(variant.into())
809            },
810            CHANGE_MERGED_0_2_0 => {
811                let variant: change_merged_0_2_0::Content = serde_json::from_value(json)?;
812                Ok(variant.into())
813            },
814            CHANGE_REVIEWED_0_3_0 => {
815                let variant: change_reviewed_0_3_0::Content = serde_json::from_value(json)?;
816                Ok(variant.into())
817            },
818            CHANGE_REVIEWED_0_1_2 => {
819                let variant: change_reviewed_0_1_2::Content = serde_json::from_value(json)?;
820                Ok(variant.into())
821            },
822            CHANGE_REVIEWED_0_2_0 => {
823                let variant: change_reviewed_0_2_0::Content = serde_json::from_value(json)?;
824                Ok(variant.into())
825            },
826            CHANGE_UPDATED_0_3_0 => {
827                let variant: change_updated_0_3_0::Content = serde_json::from_value(json)?;
828                Ok(variant.into())
829            },
830            CHANGE_UPDATED_0_1_2 => {
831                let variant: change_updated_0_1_2::Content = serde_json::from_value(json)?;
832                Ok(variant.into())
833            },
834            CHANGE_UPDATED_0_2_0 => {
835                let variant: change_updated_0_2_0::Content = serde_json::from_value(json)?;
836                Ok(variant.into())
837            },
838            ENVIRONMENT_CREATED_0_3_0 => {
839                let variant: environment_created_0_3_0::Content = serde_json::from_value(json)?;
840                Ok(variant.into())
841            },
842            ENVIRONMENT_CREATED_0_1_1 => {
843                let variant: environment_created_0_1_1::Content = serde_json::from_value(json)?;
844                Ok(variant.into())
845            },
846            ENVIRONMENT_CREATED_0_2_0 => {
847                let variant: environment_created_0_2_0::Content = serde_json::from_value(json)?;
848                Ok(variant.into())
849            },
850            ENVIRONMENT_DELETED_0_3_0 => {
851                let variant: environment_deleted_0_3_0::Content = serde_json::from_value(json)?;
852                Ok(variant.into())
853            },
854            ENVIRONMENT_DELETED_0_1_1 => {
855                let variant: environment_deleted_0_1_1::Content = serde_json::from_value(json)?;
856                Ok(variant.into())
857            },
858            ENVIRONMENT_DELETED_0_2_0 => {
859                let variant: environment_deleted_0_2_0::Content = serde_json::from_value(json)?;
860                Ok(variant.into())
861            },
862            ENVIRONMENT_MODIFIED_0_3_0 => {
863                let variant: environment_modified_0_3_0::Content = serde_json::from_value(json)?;
864                Ok(variant.into())
865            },
866            ENVIRONMENT_MODIFIED_0_1_1 => {
867                let variant: environment_modified_0_1_1::Content = serde_json::from_value(json)?;
868                Ok(variant.into())
869            },
870            ENVIRONMENT_MODIFIED_0_2_0 => {
871                let variant: environment_modified_0_2_0::Content = serde_json::from_value(json)?;
872                Ok(variant.into())
873            },
874            INCIDENT_DETECTED_0_3_0 => {
875                let variant: incident_detected_0_3_0::Content = serde_json::from_value(json)?;
876                Ok(variant.into())
877            },
878            INCIDENT_DETECTED_0_1_0 => {
879                let variant: incident_detected_0_1_0::Content = serde_json::from_value(json)?;
880                Ok(variant.into())
881            },
882            INCIDENT_DETECTED_0_2_0 => {
883                let variant: incident_detected_0_2_0::Content = serde_json::from_value(json)?;
884                Ok(variant.into())
885            },
886            INCIDENT_REPORTED_0_3_0 => {
887                let variant: incident_reported_0_3_0::Content = serde_json::from_value(json)?;
888                Ok(variant.into())
889            },
890            INCIDENT_REPORTED_0_1_0 => {
891                let variant: incident_reported_0_1_0::Content = serde_json::from_value(json)?;
892                Ok(variant.into())
893            },
894            INCIDENT_REPORTED_0_2_0 => {
895                let variant: incident_reported_0_2_0::Content = serde_json::from_value(json)?;
896                Ok(variant.into())
897            },
898            INCIDENT_RESOLVED_0_3_0 => {
899                let variant: incident_resolved_0_3_0::Content = serde_json::from_value(json)?;
900                Ok(variant.into())
901            },
902            INCIDENT_RESOLVED_0_1_0 => {
903                let variant: incident_resolved_0_1_0::Content = serde_json::from_value(json)?;
904                Ok(variant.into())
905            },
906            INCIDENT_RESOLVED_0_2_0 => {
907                let variant: incident_resolved_0_2_0::Content = serde_json::from_value(json)?;
908                Ok(variant.into())
909            },
910            PIPELINERUN_FINISHED_0_3_0 => {
911                let variant: pipelinerun_finished_0_3_0::Content = serde_json::from_value(json)?;
912                Ok(variant.into())
913            },
914            PIPELINERUN_FINISHED_0_1_1 => {
915                let variant: pipelinerun_finished_0_1_1::Content = serde_json::from_value(json)?;
916                Ok(variant.into())
917            },
918            PIPELINERUN_FINISHED_0_2_0 => {
919                let variant: pipelinerun_finished_0_2_0::Content = serde_json::from_value(json)?;
920                Ok(variant.into())
921            },
922            PIPELINERUN_QUEUED_0_3_0 => {
923                let variant: pipelinerun_queued_0_3_0::Content = serde_json::from_value(json)?;
924                Ok(variant.into())
925            },
926            PIPELINERUN_QUEUED_0_1_1 => {
927                let variant: pipelinerun_queued_0_1_1::Content = serde_json::from_value(json)?;
928                Ok(variant.into())
929            },
930            PIPELINERUN_QUEUED_0_2_0 => {
931                let variant: pipelinerun_queued_0_2_0::Content = serde_json::from_value(json)?;
932                Ok(variant.into())
933            },
934            PIPELINERUN_STARTED_0_3_0 => {
935                let variant: pipelinerun_started_0_3_0::Content = serde_json::from_value(json)?;
936                Ok(variant.into())
937            },
938            PIPELINERUN_STARTED_0_1_1 => {
939                let variant: pipelinerun_started_0_1_1::Content = serde_json::from_value(json)?;
940                Ok(variant.into())
941            },
942            PIPELINERUN_STARTED_0_2_0 => {
943                let variant: pipelinerun_started_0_2_0::Content = serde_json::from_value(json)?;
944                Ok(variant.into())
945            },
946            REPOSITORY_CREATED_0_3_0 => {
947                let variant: repository_created_0_3_0::Content = serde_json::from_value(json)?;
948                Ok(variant.into())
949            },
950            REPOSITORY_CREATED_0_1_1 => {
951                let variant: repository_created_0_1_1::Content = serde_json::from_value(json)?;
952                Ok(variant.into())
953            },
954            REPOSITORY_CREATED_0_2_0 => {
955                let variant: repository_created_0_2_0::Content = serde_json::from_value(json)?;
956                Ok(variant.into())
957            },
958            REPOSITORY_DELETED_0_3_0 => {
959                let variant: repository_deleted_0_3_0::Content = serde_json::from_value(json)?;
960                Ok(variant.into())
961            },
962            REPOSITORY_DELETED_0_1_1 => {
963                let variant: repository_deleted_0_1_1::Content = serde_json::from_value(json)?;
964                Ok(variant.into())
965            },
966            REPOSITORY_DELETED_0_2_0 => {
967                let variant: repository_deleted_0_2_0::Content = serde_json::from_value(json)?;
968                Ok(variant.into())
969            },
970            REPOSITORY_MODIFIED_0_3_0 => {
971                let variant: repository_modified_0_3_0::Content = serde_json::from_value(json)?;
972                Ok(variant.into())
973            },
974            REPOSITORY_MODIFIED_0_1_1 => {
975                let variant: repository_modified_0_1_1::Content = serde_json::from_value(json)?;
976                Ok(variant.into())
977            },
978            REPOSITORY_MODIFIED_0_2_0 => {
979                let variant: repository_modified_0_2_0::Content = serde_json::from_value(json)?;
980                Ok(variant.into())
981            },
982            SERVICE_DEPLOYED_0_3_0 => {
983                let variant: service_deployed_0_3_0::Content = serde_json::from_value(json)?;
984                Ok(variant.into())
985            },
986            SERVICE_DEPLOYED_0_1_1 => {
987                let variant: service_deployed_0_1_1::Content = serde_json::from_value(json)?;
988                Ok(variant.into())
989            },
990            SERVICE_DEPLOYED_0_2_0 => {
991                let variant: service_deployed_0_2_0::Content = serde_json::from_value(json)?;
992                Ok(variant.into())
993            },
994            SERVICE_PUBLISHED_0_3_0 => {
995                let variant: service_published_0_3_0::Content = serde_json::from_value(json)?;
996                Ok(variant.into())
997            },
998            SERVICE_PUBLISHED_0_1_1 => {
999                let variant: service_published_0_1_1::Content = serde_json::from_value(json)?;
1000                Ok(variant.into())
1001            },
1002            SERVICE_PUBLISHED_0_2_0 => {
1003                let variant: service_published_0_2_0::Content = serde_json::from_value(json)?;
1004                Ok(variant.into())
1005            },
1006            SERVICE_REMOVED_0_3_0 => {
1007                let variant: service_removed_0_3_0::Content = serde_json::from_value(json)?;
1008                Ok(variant.into())
1009            },
1010            SERVICE_REMOVED_0_1_1 => {
1011                let variant: service_removed_0_1_1::Content = serde_json::from_value(json)?;
1012                Ok(variant.into())
1013            },
1014            SERVICE_REMOVED_0_2_0 => {
1015                let variant: service_removed_0_2_0::Content = serde_json::from_value(json)?;
1016                Ok(variant.into())
1017            },
1018            SERVICE_ROLLEDBACK_0_3_0 => {
1019                let variant: service_rolledback_0_3_0::Content = serde_json::from_value(json)?;
1020                Ok(variant.into())
1021            },
1022            SERVICE_ROLLEDBACK_0_1_1 => {
1023                let variant: service_rolledback_0_1_1::Content = serde_json::from_value(json)?;
1024                Ok(variant.into())
1025            },
1026            SERVICE_ROLLEDBACK_0_2_0 => {
1027                let variant: service_rolledback_0_2_0::Content = serde_json::from_value(json)?;
1028                Ok(variant.into())
1029            },
1030            SERVICE_UPGRADED_0_3_0 => {
1031                let variant: service_upgraded_0_3_0::Content = serde_json::from_value(json)?;
1032                Ok(variant.into())
1033            },
1034            SERVICE_UPGRADED_0_1_1 => {
1035                let variant: service_upgraded_0_1_1::Content = serde_json::from_value(json)?;
1036                Ok(variant.into())
1037            },
1038            SERVICE_UPGRADED_0_2_0 => {
1039                let variant: service_upgraded_0_2_0::Content = serde_json::from_value(json)?;
1040                Ok(variant.into())
1041            },
1042            TASKRUN_FINISHED_0_3_0 => {
1043                let variant: taskrun_finished_0_3_0::Content = serde_json::from_value(json)?;
1044                Ok(variant.into())
1045            },
1046            TASKRUN_FINISHED_0_1_1 => {
1047                let variant: taskrun_finished_0_1_1::Content = serde_json::from_value(json)?;
1048                Ok(variant.into())
1049            },
1050            TASKRUN_FINISHED_0_2_0 => {
1051                let variant: taskrun_finished_0_2_0::Content = serde_json::from_value(json)?;
1052                Ok(variant.into())
1053            },
1054            TASKRUN_STARTED_0_3_0 => {
1055                let variant: taskrun_started_0_3_0::Content = serde_json::from_value(json)?;
1056                Ok(variant.into())
1057            },
1058            TASKRUN_STARTED_0_1_1 => {
1059                let variant: taskrun_started_0_1_1::Content = serde_json::from_value(json)?;
1060                Ok(variant.into())
1061            },
1062            TASKRUN_STARTED_0_2_0 => {
1063                let variant: taskrun_started_0_2_0::Content = serde_json::from_value(json)?;
1064                Ok(variant.into())
1065            },
1066            TESTCASERUN_FINISHED_0_3_0 => {
1067                let variant: testcaserun_finished_0_3_0::Content = serde_json::from_value(json)?;
1068                Ok(variant.into())
1069            },
1070            TESTCASERUN_FINISHED_0_1_0 => {
1071                let variant: testcaserun_finished_0_1_0::Content = serde_json::from_value(json)?;
1072                Ok(variant.into())
1073            },
1074            TESTCASERUN_FINISHED_0_2_0 => {
1075                let variant: testcaserun_finished_0_2_0::Content = serde_json::from_value(json)?;
1076                Ok(variant.into())
1077            },
1078            TESTCASERUN_QUEUED_0_3_0 => {
1079                let variant: testcaserun_queued_0_3_0::Content = serde_json::from_value(json)?;
1080                Ok(variant.into())
1081            },
1082            TESTCASERUN_QUEUED_0_1_0 => {
1083                let variant: testcaserun_queued_0_1_0::Content = serde_json::from_value(json)?;
1084                Ok(variant.into())
1085            },
1086            TESTCASERUN_QUEUED_0_2_0 => {
1087                let variant: testcaserun_queued_0_2_0::Content = serde_json::from_value(json)?;
1088                Ok(variant.into())
1089            },
1090            TESTCASERUN_SKIPPED_0_2_0 => {
1091                let variant: testcaserun_skipped_0_2_0::Content = serde_json::from_value(json)?;
1092                Ok(variant.into())
1093            },
1094            TESTCASERUN_SKIPPED_0_1_0 => {
1095                let variant: testcaserun_skipped_0_1_0::Content = serde_json::from_value(json)?;
1096                Ok(variant.into())
1097            },
1098            TESTCASERUN_STARTED_0_3_0 => {
1099                let variant: testcaserun_started_0_3_0::Content = serde_json::from_value(json)?;
1100                Ok(variant.into())
1101            },
1102            TESTCASERUN_STARTED_0_1_0 => {
1103                let variant: testcaserun_started_0_1_0::Content = serde_json::from_value(json)?;
1104                Ok(variant.into())
1105            },
1106            TESTCASERUN_STARTED_0_2_0 => {
1107                let variant: testcaserun_started_0_2_0::Content = serde_json::from_value(json)?;
1108                Ok(variant.into())
1109            },
1110            TESTOUTPUT_PUBLISHED_0_3_0 => {
1111                let variant: testoutput_published_0_3_0::Content = serde_json::from_value(json)?;
1112                Ok(variant.into())
1113            },
1114            TESTOUTPUT_PUBLISHED_0_1_0 => {
1115                let variant: testoutput_published_0_1_0::Content = serde_json::from_value(json)?;
1116                Ok(variant.into())
1117            },
1118            TESTOUTPUT_PUBLISHED_0_2_0 => {
1119                let variant: testoutput_published_0_2_0::Content = serde_json::from_value(json)?;
1120                Ok(variant.into())
1121            },
1122            TESTSUITERUN_FINISHED_0_3_0 => {
1123                let variant: testsuiterun_finished_0_3_0::Content = serde_json::from_value(json)?;
1124                Ok(variant.into())
1125            },
1126            TESTSUITERUN_FINISHED_0_1_0 => {
1127                let variant: testsuiterun_finished_0_1_0::Content = serde_json::from_value(json)?;
1128                Ok(variant.into())
1129            },
1130            TESTSUITERUN_FINISHED_0_2_0 => {
1131                let variant: testsuiterun_finished_0_2_0::Content = serde_json::from_value(json)?;
1132                Ok(variant.into())
1133            },
1134            TESTSUITERUN_QUEUED_0_3_0 => {
1135                let variant: testsuiterun_queued_0_3_0::Content = serde_json::from_value(json)?;
1136                Ok(variant.into())
1137            },
1138            TESTSUITERUN_QUEUED_0_1_0 => {
1139                let variant: testsuiterun_queued_0_1_0::Content = serde_json::from_value(json)?;
1140                Ok(variant.into())
1141            },
1142            TESTSUITERUN_QUEUED_0_2_0 => {
1143                let variant: testsuiterun_queued_0_2_0::Content = serde_json::from_value(json)?;
1144                Ok(variant.into())
1145            },
1146            TESTSUITERUN_STARTED_0_3_0 => {
1147                let variant: testsuiterun_started_0_3_0::Content = serde_json::from_value(json)?;
1148                Ok(variant.into())
1149            },
1150            TESTSUITERUN_STARTED_0_1_0 => {
1151                let variant: testsuiterun_started_0_1_0::Content = serde_json::from_value(json)?;
1152                Ok(variant.into())
1153            },
1154            TESTSUITERUN_STARTED_0_2_0 => {
1155                let variant: testsuiterun_started_0_2_0::Content = serde_json::from_value(json)?;
1156                Ok(variant.into())
1157            },
1158            TICKET_CLOSED_0_2_0 => {
1159                let variant: ticket_closed_0_2_0::Content = serde_json::from_value(json)?;
1160                Ok(variant.into())
1161            },
1162            TICKET_CLOSED_0_1_0 => {
1163                let variant: ticket_closed_0_1_0::Content = serde_json::from_value(json)?;
1164                Ok(variant.into())
1165            },
1166            TICKET_CREATED_0_2_0 => {
1167                let variant: ticket_created_0_2_0::Content = serde_json::from_value(json)?;
1168                Ok(variant.into())
1169            },
1170            TICKET_CREATED_0_1_0 => {
1171                let variant: ticket_created_0_1_0::Content = serde_json::from_value(json)?;
1172                Ok(variant.into())
1173            },
1174            TICKET_UPDATED_0_2_0 => {
1175                let variant: ticket_updated_0_2_0::Content = serde_json::from_value(json)?;
1176                Ok(variant.into())
1177            },
1178            TICKET_UPDATED_0_1_0 => {
1179                let variant: ticket_updated_0_1_0::Content = serde_json::from_value(json)?;
1180                Ok(variant.into())
1181            },
1182            variant => if variant.starts_with("dev.cdeventsx.") {
1183                Ok(Self::Custom{ ty: ty.to_string(), json })
1184            } else {
1185              Err(serde_json::Error::custom(format_args!(
1186                  "unknown variant `{}`, expected 'dev.cdevents.{{subject}}.{{predicate}}.{{version}}'",
1187                  variant,
1188              )))
1189            },
1190        }
1191    }
1192
1193    pub fn ty(&self) -> &str {
1194        match self {
1195            Self::ApprovalClosed010(_) => APPROVAL_CLOSED_0_1_0,
1196            Self::ApprovalCreated010(_) => APPROVAL_CREATED_0_1_0,
1197            Self::ApprovalUpdated010(_) => APPROVAL_UPDATED_0_1_0,
1198            Self::ArtifactDeleted020(_) => ARTIFACT_DELETED_0_2_0,
1199            Self::ArtifactDeleted010(_) => ARTIFACT_DELETED_0_1_0,
1200            Self::ArtifactDownloaded020(_) => ARTIFACT_DOWNLOADED_0_2_0,
1201            Self::ArtifactDownloaded010(_) => ARTIFACT_DOWNLOADED_0_1_0,
1202            Self::ArtifactPackaged030(_) => ARTIFACT_PACKAGED_0_3_0,
1203            Self::ArtifactPackaged011(_) => ARTIFACT_PACKAGED_0_1_1,
1204            Self::ArtifactPackaged020(_) => ARTIFACT_PACKAGED_0_2_0,
1205            Self::ArtifactPublished030(_) => ARTIFACT_PUBLISHED_0_3_0,
1206            Self::ArtifactPublished011(_) => ARTIFACT_PUBLISHED_0_1_1,
1207            Self::ArtifactPublished020(_) => ARTIFACT_PUBLISHED_0_2_0,
1208            Self::ArtifactSigned030(_) => ARTIFACT_SIGNED_0_3_0,
1209            Self::ArtifactSigned010(_) => ARTIFACT_SIGNED_0_1_0,
1210            Self::ArtifactSigned020(_) => ARTIFACT_SIGNED_0_2_0,
1211            Self::BranchCreated030(_) => BRANCH_CREATED_0_3_0,
1212            Self::BranchCreated012(_) => BRANCH_CREATED_0_1_2,
1213            Self::BranchCreated020(_) => BRANCH_CREATED_0_2_0,
1214            Self::BranchDeleted030(_) => BRANCH_DELETED_0_3_0,
1215            Self::BranchDeleted012(_) => BRANCH_DELETED_0_1_2,
1216            Self::BranchDeleted020(_) => BRANCH_DELETED_0_2_0,
1217            Self::BuildFinished030(_) => BUILD_FINISHED_0_3_0,
1218            Self::BuildFinished011(_) => BUILD_FINISHED_0_1_1,
1219            Self::BuildFinished020(_) => BUILD_FINISHED_0_2_0,
1220            Self::BuildQueued030(_) => BUILD_QUEUED_0_3_0,
1221            Self::BuildQueued011(_) => BUILD_QUEUED_0_1_1,
1222            Self::BuildQueued020(_) => BUILD_QUEUED_0_2_0,
1223            Self::BuildStarted030(_) => BUILD_STARTED_0_3_0,
1224            Self::BuildStarted011(_) => BUILD_STARTED_0_1_1,
1225            Self::BuildStarted020(_) => BUILD_STARTED_0_2_0,
1226            Self::ChangeAbandoned030(_) => CHANGE_ABANDONED_0_3_0,
1227            Self::ChangeAbandoned012(_) => CHANGE_ABANDONED_0_1_2,
1228            Self::ChangeAbandoned020(_) => CHANGE_ABANDONED_0_2_0,
1229            Self::ChangeCreated040(_) => CHANGE_CREATED_0_4_0,
1230            Self::ChangeCreated012(_) => CHANGE_CREATED_0_1_2,
1231            Self::ChangeCreated030(_) => CHANGE_CREATED_0_3_0,
1232            Self::ChangeMerged030(_) => CHANGE_MERGED_0_3_0,
1233            Self::ChangeMerged012(_) => CHANGE_MERGED_0_1_2,
1234            Self::ChangeMerged020(_) => CHANGE_MERGED_0_2_0,
1235            Self::ChangeReviewed030(_) => CHANGE_REVIEWED_0_3_0,
1236            Self::ChangeReviewed012(_) => CHANGE_REVIEWED_0_1_2,
1237            Self::ChangeReviewed020(_) => CHANGE_REVIEWED_0_2_0,
1238            Self::ChangeUpdated030(_) => CHANGE_UPDATED_0_3_0,
1239            Self::ChangeUpdated012(_) => CHANGE_UPDATED_0_1_2,
1240            Self::ChangeUpdated020(_) => CHANGE_UPDATED_0_2_0,
1241            Self::EnvironmentCreated030(_) => ENVIRONMENT_CREATED_0_3_0,
1242            Self::EnvironmentCreated011(_) => ENVIRONMENT_CREATED_0_1_1,
1243            Self::EnvironmentCreated020(_) => ENVIRONMENT_CREATED_0_2_0,
1244            Self::EnvironmentDeleted030(_) => ENVIRONMENT_DELETED_0_3_0,
1245            Self::EnvironmentDeleted011(_) => ENVIRONMENT_DELETED_0_1_1,
1246            Self::EnvironmentDeleted020(_) => ENVIRONMENT_DELETED_0_2_0,
1247            Self::EnvironmentModified030(_) => ENVIRONMENT_MODIFIED_0_3_0,
1248            Self::EnvironmentModified011(_) => ENVIRONMENT_MODIFIED_0_1_1,
1249            Self::EnvironmentModified020(_) => ENVIRONMENT_MODIFIED_0_2_0,
1250            Self::IncidentDetected030(_) => INCIDENT_DETECTED_0_3_0,
1251            Self::IncidentDetected010(_) => INCIDENT_DETECTED_0_1_0,
1252            Self::IncidentDetected020(_) => INCIDENT_DETECTED_0_2_0,
1253            Self::IncidentReported030(_) => INCIDENT_REPORTED_0_3_0,
1254            Self::IncidentReported010(_) => INCIDENT_REPORTED_0_1_0,
1255            Self::IncidentReported020(_) => INCIDENT_REPORTED_0_2_0,
1256            Self::IncidentResolved030(_) => INCIDENT_RESOLVED_0_3_0,
1257            Self::IncidentResolved010(_) => INCIDENT_RESOLVED_0_1_0,
1258            Self::IncidentResolved020(_) => INCIDENT_RESOLVED_0_2_0,
1259            Self::PipelinerunFinished030(_) => PIPELINERUN_FINISHED_0_3_0,
1260            Self::PipelinerunFinished011(_) => PIPELINERUN_FINISHED_0_1_1,
1261            Self::PipelinerunFinished020(_) => PIPELINERUN_FINISHED_0_2_0,
1262            Self::PipelinerunQueued030(_) => PIPELINERUN_QUEUED_0_3_0,
1263            Self::PipelinerunQueued011(_) => PIPELINERUN_QUEUED_0_1_1,
1264            Self::PipelinerunQueued020(_) => PIPELINERUN_QUEUED_0_2_0,
1265            Self::PipelinerunStarted030(_) => PIPELINERUN_STARTED_0_3_0,
1266            Self::PipelinerunStarted011(_) => PIPELINERUN_STARTED_0_1_1,
1267            Self::PipelinerunStarted020(_) => PIPELINERUN_STARTED_0_2_0,
1268            Self::RepositoryCreated030(_) => REPOSITORY_CREATED_0_3_0,
1269            Self::RepositoryCreated011(_) => REPOSITORY_CREATED_0_1_1,
1270            Self::RepositoryCreated020(_) => REPOSITORY_CREATED_0_2_0,
1271            Self::RepositoryDeleted030(_) => REPOSITORY_DELETED_0_3_0,
1272            Self::RepositoryDeleted011(_) => REPOSITORY_DELETED_0_1_1,
1273            Self::RepositoryDeleted020(_) => REPOSITORY_DELETED_0_2_0,
1274            Self::RepositoryModified030(_) => REPOSITORY_MODIFIED_0_3_0,
1275            Self::RepositoryModified011(_) => REPOSITORY_MODIFIED_0_1_1,
1276            Self::RepositoryModified020(_) => REPOSITORY_MODIFIED_0_2_0,
1277            Self::ServiceDeployed030(_) => SERVICE_DEPLOYED_0_3_0,
1278            Self::ServiceDeployed011(_) => SERVICE_DEPLOYED_0_1_1,
1279            Self::ServiceDeployed020(_) => SERVICE_DEPLOYED_0_2_0,
1280            Self::ServicePublished030(_) => SERVICE_PUBLISHED_0_3_0,
1281            Self::ServicePublished011(_) => SERVICE_PUBLISHED_0_1_1,
1282            Self::ServicePublished020(_) => SERVICE_PUBLISHED_0_2_0,
1283            Self::ServiceRemoved030(_) => SERVICE_REMOVED_0_3_0,
1284            Self::ServiceRemoved011(_) => SERVICE_REMOVED_0_1_1,
1285            Self::ServiceRemoved020(_) => SERVICE_REMOVED_0_2_0,
1286            Self::ServiceRolledback030(_) => SERVICE_ROLLEDBACK_0_3_0,
1287            Self::ServiceRolledback011(_) => SERVICE_ROLLEDBACK_0_1_1,
1288            Self::ServiceRolledback020(_) => SERVICE_ROLLEDBACK_0_2_0,
1289            Self::ServiceUpgraded030(_) => SERVICE_UPGRADED_0_3_0,
1290            Self::ServiceUpgraded011(_) => SERVICE_UPGRADED_0_1_1,
1291            Self::ServiceUpgraded020(_) => SERVICE_UPGRADED_0_2_0,
1292            Self::TaskrunFinished030(_) => TASKRUN_FINISHED_0_3_0,
1293            Self::TaskrunFinished011(_) => TASKRUN_FINISHED_0_1_1,
1294            Self::TaskrunFinished020(_) => TASKRUN_FINISHED_0_2_0,
1295            Self::TaskrunStarted030(_) => TASKRUN_STARTED_0_3_0,
1296            Self::TaskrunStarted011(_) => TASKRUN_STARTED_0_1_1,
1297            Self::TaskrunStarted020(_) => TASKRUN_STARTED_0_2_0,
1298            Self::TestcaserunFinished030(_) => TESTCASERUN_FINISHED_0_3_0,
1299            Self::TestcaserunFinished010(_) => TESTCASERUN_FINISHED_0_1_0,
1300            Self::TestcaserunFinished020(_) => TESTCASERUN_FINISHED_0_2_0,
1301            Self::TestcaserunQueued030(_) => TESTCASERUN_QUEUED_0_3_0,
1302            Self::TestcaserunQueued010(_) => TESTCASERUN_QUEUED_0_1_0,
1303            Self::TestcaserunQueued020(_) => TESTCASERUN_QUEUED_0_2_0,
1304            Self::TestcaserunSkipped020(_) => TESTCASERUN_SKIPPED_0_2_0,
1305            Self::TestcaserunSkipped010(_) => TESTCASERUN_SKIPPED_0_1_0,
1306            Self::TestcaserunStarted030(_) => TESTCASERUN_STARTED_0_3_0,
1307            Self::TestcaserunStarted010(_) => TESTCASERUN_STARTED_0_1_0,
1308            Self::TestcaserunStarted020(_) => TESTCASERUN_STARTED_0_2_0,
1309            Self::TestoutputPublished030(_) => TESTOUTPUT_PUBLISHED_0_3_0,
1310            Self::TestoutputPublished010(_) => TESTOUTPUT_PUBLISHED_0_1_0,
1311            Self::TestoutputPublished020(_) => TESTOUTPUT_PUBLISHED_0_2_0,
1312            Self::TestsuiterunFinished030(_) => TESTSUITERUN_FINISHED_0_3_0,
1313            Self::TestsuiterunFinished010(_) => TESTSUITERUN_FINISHED_0_1_0,
1314            Self::TestsuiterunFinished020(_) => TESTSUITERUN_FINISHED_0_2_0,
1315            Self::TestsuiterunQueued030(_) => TESTSUITERUN_QUEUED_0_3_0,
1316            Self::TestsuiterunQueued010(_) => TESTSUITERUN_QUEUED_0_1_0,
1317            Self::TestsuiterunQueued020(_) => TESTSUITERUN_QUEUED_0_2_0,
1318            Self::TestsuiterunStarted030(_) => TESTSUITERUN_STARTED_0_3_0,
1319            Self::TestsuiterunStarted010(_) => TESTSUITERUN_STARTED_0_1_0,
1320            Self::TestsuiterunStarted020(_) => TESTSUITERUN_STARTED_0_2_0,
1321            Self::TicketClosed020(_) => TICKET_CLOSED_0_2_0,
1322            Self::TicketClosed010(_) => TICKET_CLOSED_0_1_0,
1323            Self::TicketCreated020(_) => TICKET_CREATED_0_2_0,
1324            Self::TicketCreated010(_) => TICKET_CREATED_0_1_0,
1325            Self::TicketUpdated020(_) => TICKET_UPDATED_0_2_0,
1326            Self::TicketUpdated010(_) => TICKET_UPDATED_0_1_0,
1327            Self::Custom{ty, ..} => ty,
1328        }
1329    }
1330
1331    pub fn subject(&self) -> &str {
1332        match self {
1333            Self::ApprovalClosed010(_) => "",
1334            Self::ApprovalCreated010(_) => "",
1335            Self::ApprovalUpdated010(_) => "",
1336            Self::ArtifactDeleted020(_) => "",
1337            Self::ArtifactDeleted010(_) => "artifact",
1338            Self::ArtifactDownloaded020(_) => "",
1339            Self::ArtifactDownloaded010(_) => "artifact",
1340            Self::ArtifactPackaged030(_) => "",
1341            Self::ArtifactPackaged011(_) => "artifact",
1342            Self::ArtifactPackaged020(_) => "artifact",
1343            Self::ArtifactPublished030(_) => "",
1344            Self::ArtifactPublished011(_) => "artifact",
1345            Self::ArtifactPublished020(_) => "artifact",
1346            Self::ArtifactSigned030(_) => "",
1347            Self::ArtifactSigned010(_) => "artifact",
1348            Self::ArtifactSigned020(_) => "artifact",
1349            Self::BranchCreated030(_) => "",
1350            Self::BranchCreated012(_) => "branch",
1351            Self::BranchCreated020(_) => "branch",
1352            Self::BranchDeleted030(_) => "",
1353            Self::BranchDeleted012(_) => "branch",
1354            Self::BranchDeleted020(_) => "branch",
1355            Self::BuildFinished030(_) => "",
1356            Self::BuildFinished011(_) => "build",
1357            Self::BuildFinished020(_) => "build",
1358            Self::BuildQueued030(_) => "",
1359            Self::BuildQueued011(_) => "build",
1360            Self::BuildQueued020(_) => "build",
1361            Self::BuildStarted030(_) => "",
1362            Self::BuildStarted011(_) => "build",
1363            Self::BuildStarted020(_) => "build",
1364            Self::ChangeAbandoned030(_) => "",
1365            Self::ChangeAbandoned012(_) => "change",
1366            Self::ChangeAbandoned020(_) => "change",
1367            Self::ChangeCreated040(_) => "",
1368            Self::ChangeCreated012(_) => "change",
1369            Self::ChangeCreated030(_) => "change",
1370            Self::ChangeMerged030(_) => "",
1371            Self::ChangeMerged012(_) => "change",
1372            Self::ChangeMerged020(_) => "change",
1373            Self::ChangeReviewed030(_) => "",
1374            Self::ChangeReviewed012(_) => "change",
1375            Self::ChangeReviewed020(_) => "change",
1376            Self::ChangeUpdated030(_) => "",
1377            Self::ChangeUpdated012(_) => "change",
1378            Self::ChangeUpdated020(_) => "change",
1379            Self::EnvironmentCreated030(_) => "",
1380            Self::EnvironmentCreated011(_) => "environment",
1381            Self::EnvironmentCreated020(_) => "environment",
1382            Self::EnvironmentDeleted030(_) => "",
1383            Self::EnvironmentDeleted011(_) => "environment",
1384            Self::EnvironmentDeleted020(_) => "environment",
1385            Self::EnvironmentModified030(_) => "",
1386            Self::EnvironmentModified011(_) => "environment",
1387            Self::EnvironmentModified020(_) => "environment",
1388            Self::IncidentDetected030(_) => "",
1389            Self::IncidentDetected010(_) => "incident",
1390            Self::IncidentDetected020(_) => "incident",
1391            Self::IncidentReported030(_) => "",
1392            Self::IncidentReported010(_) => "incident",
1393            Self::IncidentReported020(_) => "incident",
1394            Self::IncidentResolved030(_) => "",
1395            Self::IncidentResolved010(_) => "incident",
1396            Self::IncidentResolved020(_) => "incident",
1397            Self::PipelinerunFinished030(_) => "",
1398            Self::PipelinerunFinished011(_) => "pipelineRun",
1399            Self::PipelinerunFinished020(_) => "pipelineRun",
1400            Self::PipelinerunQueued030(_) => "",
1401            Self::PipelinerunQueued011(_) => "pipelineRun",
1402            Self::PipelinerunQueued020(_) => "pipelineRun",
1403            Self::PipelinerunStarted030(_) => "",
1404            Self::PipelinerunStarted011(_) => "pipelineRun",
1405            Self::PipelinerunStarted020(_) => "pipelineRun",
1406            Self::RepositoryCreated030(_) => "",
1407            Self::RepositoryCreated011(_) => "repository",
1408            Self::RepositoryCreated020(_) => "repository",
1409            Self::RepositoryDeleted030(_) => "",
1410            Self::RepositoryDeleted011(_) => "repository",
1411            Self::RepositoryDeleted020(_) => "repository",
1412            Self::RepositoryModified030(_) => "",
1413            Self::RepositoryModified011(_) => "repository",
1414            Self::RepositoryModified020(_) => "repository",
1415            Self::ServiceDeployed030(_) => "",
1416            Self::ServiceDeployed011(_) => "service",
1417            Self::ServiceDeployed020(_) => "service",
1418            Self::ServicePublished030(_) => "",
1419            Self::ServicePublished011(_) => "service",
1420            Self::ServicePublished020(_) => "service",
1421            Self::ServiceRemoved030(_) => "",
1422            Self::ServiceRemoved011(_) => "service",
1423            Self::ServiceRemoved020(_) => "service",
1424            Self::ServiceRolledback030(_) => "",
1425            Self::ServiceRolledback011(_) => "service",
1426            Self::ServiceRolledback020(_) => "service",
1427            Self::ServiceUpgraded030(_) => "",
1428            Self::ServiceUpgraded011(_) => "service",
1429            Self::ServiceUpgraded020(_) => "service",
1430            Self::TaskrunFinished030(_) => "",
1431            Self::TaskrunFinished011(_) => "taskRun",
1432            Self::TaskrunFinished020(_) => "taskRun",
1433            Self::TaskrunStarted030(_) => "",
1434            Self::TaskrunStarted011(_) => "taskRun",
1435            Self::TaskrunStarted020(_) => "taskRun",
1436            Self::TestcaserunFinished030(_) => "",
1437            Self::TestcaserunFinished010(_) => "testCaseRun",
1438            Self::TestcaserunFinished020(_) => "testCaseRun",
1439            Self::TestcaserunQueued030(_) => "",
1440            Self::TestcaserunQueued010(_) => "testCaseRun",
1441            Self::TestcaserunQueued020(_) => "testCaseRun",
1442            Self::TestcaserunSkipped020(_) => "",
1443            Self::TestcaserunSkipped010(_) => "testCaseRun",
1444            Self::TestcaserunStarted030(_) => "",
1445            Self::TestcaserunStarted010(_) => "testCaseRun",
1446            Self::TestcaserunStarted020(_) => "testCaseRun",
1447            Self::TestoutputPublished030(_) => "",
1448            Self::TestoutputPublished010(_) => "testOutput",
1449            Self::TestoutputPublished020(_) => "testOutput",
1450            Self::TestsuiterunFinished030(_) => "",
1451            Self::TestsuiterunFinished010(_) => "testSuiteRun",
1452            Self::TestsuiterunFinished020(_) => "testSuiteRun",
1453            Self::TestsuiterunQueued030(_) => "",
1454            Self::TestsuiterunQueued010(_) => "testSuiteRun",
1455            Self::TestsuiterunQueued020(_) => "testSuiteRun",
1456            Self::TestsuiterunStarted030(_) => "",
1457            Self::TestsuiterunStarted010(_) => "testSuiteRun",
1458            Self::TestsuiterunStarted020(_) => "testSuiteRun",
1459            Self::TicketClosed020(_) => "ticket",
1460            Self::TicketClosed010(_) => "ticket",
1461            Self::TicketCreated020(_) => "",
1462            Self::TicketCreated010(_) => "ticket",
1463            Self::TicketUpdated020(_) => "",
1464            Self::TicketUpdated010(_) => "ticket",
1465            Self::Custom{ty, ..} => ty.split('.').nth(2).unwrap_or_default(),
1466        }
1467    }
1468
1469    pub fn predicate(&self) -> &str {
1470        match self {
1471            Self::ApprovalClosed010(_) => "closed",
1472            Self::ApprovalCreated010(_) => "created",
1473            Self::ApprovalUpdated010(_) => "updated",
1474            Self::ArtifactDeleted020(_) => "deleted",
1475            Self::ArtifactDeleted010(_) => "deleted",
1476            Self::ArtifactDownloaded020(_) => "downloaded",
1477            Self::ArtifactDownloaded010(_) => "downloaded",
1478            Self::ArtifactPackaged030(_) => "packaged",
1479            Self::ArtifactPackaged011(_) => "packaged",
1480            Self::ArtifactPackaged020(_) => "packaged",
1481            Self::ArtifactPublished030(_) => "published",
1482            Self::ArtifactPublished011(_) => "published",
1483            Self::ArtifactPublished020(_) => "published",
1484            Self::ArtifactSigned030(_) => "signed",
1485            Self::ArtifactSigned010(_) => "signed",
1486            Self::ArtifactSigned020(_) => "signed",
1487            Self::BranchCreated030(_) => "created",
1488            Self::BranchCreated012(_) => "created",
1489            Self::BranchCreated020(_) => "created",
1490            Self::BranchDeleted030(_) => "deleted",
1491            Self::BranchDeleted012(_) => "deleted",
1492            Self::BranchDeleted020(_) => "deleted",
1493            Self::BuildFinished030(_) => "finished",
1494            Self::BuildFinished011(_) => "finished",
1495            Self::BuildFinished020(_) => "finished",
1496            Self::BuildQueued030(_) => "queued",
1497            Self::BuildQueued011(_) => "queued",
1498            Self::BuildQueued020(_) => "queued",
1499            Self::BuildStarted030(_) => "started",
1500            Self::BuildStarted011(_) => "started",
1501            Self::BuildStarted020(_) => "started",
1502            Self::ChangeAbandoned030(_) => "abandoned",
1503            Self::ChangeAbandoned012(_) => "abandoned",
1504            Self::ChangeAbandoned020(_) => "abandoned",
1505            Self::ChangeCreated040(_) => "created",
1506            Self::ChangeCreated012(_) => "created",
1507            Self::ChangeCreated030(_) => "created",
1508            Self::ChangeMerged030(_) => "merged",
1509            Self::ChangeMerged012(_) => "merged",
1510            Self::ChangeMerged020(_) => "merged",
1511            Self::ChangeReviewed030(_) => "reviewed",
1512            Self::ChangeReviewed012(_) => "reviewed",
1513            Self::ChangeReviewed020(_) => "reviewed",
1514            Self::ChangeUpdated030(_) => "updated",
1515            Self::ChangeUpdated012(_) => "updated",
1516            Self::ChangeUpdated020(_) => "updated",
1517            Self::EnvironmentCreated030(_) => "created",
1518            Self::EnvironmentCreated011(_) => "created",
1519            Self::EnvironmentCreated020(_) => "created",
1520            Self::EnvironmentDeleted030(_) => "deleted",
1521            Self::EnvironmentDeleted011(_) => "deleted",
1522            Self::EnvironmentDeleted020(_) => "deleted",
1523            Self::EnvironmentModified030(_) => "modified",
1524            Self::EnvironmentModified011(_) => "modified",
1525            Self::EnvironmentModified020(_) => "modified",
1526            Self::IncidentDetected030(_) => "detected",
1527            Self::IncidentDetected010(_) => "detected",
1528            Self::IncidentDetected020(_) => "detected",
1529            Self::IncidentReported030(_) => "reported",
1530            Self::IncidentReported010(_) => "reported",
1531            Self::IncidentReported020(_) => "reported",
1532            Self::IncidentResolved030(_) => "resolved",
1533            Self::IncidentResolved010(_) => "resolved",
1534            Self::IncidentResolved020(_) => "resolved",
1535            Self::PipelinerunFinished030(_) => "finished",
1536            Self::PipelinerunFinished011(_) => "finished",
1537            Self::PipelinerunFinished020(_) => "finished",
1538            Self::PipelinerunQueued030(_) => "queued",
1539            Self::PipelinerunQueued011(_) => "queued",
1540            Self::PipelinerunQueued020(_) => "queued",
1541            Self::PipelinerunStarted030(_) => "started",
1542            Self::PipelinerunStarted011(_) => "started",
1543            Self::PipelinerunStarted020(_) => "started",
1544            Self::RepositoryCreated030(_) => "created",
1545            Self::RepositoryCreated011(_) => "created",
1546            Self::RepositoryCreated020(_) => "created",
1547            Self::RepositoryDeleted030(_) => "deleted",
1548            Self::RepositoryDeleted011(_) => "deleted",
1549            Self::RepositoryDeleted020(_) => "deleted",
1550            Self::RepositoryModified030(_) => "modified",
1551            Self::RepositoryModified011(_) => "modified",
1552            Self::RepositoryModified020(_) => "modified",
1553            Self::ServiceDeployed030(_) => "deployed",
1554            Self::ServiceDeployed011(_) => "deployed",
1555            Self::ServiceDeployed020(_) => "deployed",
1556            Self::ServicePublished030(_) => "published",
1557            Self::ServicePublished011(_) => "published",
1558            Self::ServicePublished020(_) => "published",
1559            Self::ServiceRemoved030(_) => "removed",
1560            Self::ServiceRemoved011(_) => "removed",
1561            Self::ServiceRemoved020(_) => "removed",
1562            Self::ServiceRolledback030(_) => "rolledback",
1563            Self::ServiceRolledback011(_) => "rolledback",
1564            Self::ServiceRolledback020(_) => "rolledback",
1565            Self::ServiceUpgraded030(_) => "upgraded",
1566            Self::ServiceUpgraded011(_) => "upgraded",
1567            Self::ServiceUpgraded020(_) => "upgraded",
1568            Self::TaskrunFinished030(_) => "finished",
1569            Self::TaskrunFinished011(_) => "finished",
1570            Self::TaskrunFinished020(_) => "finished",
1571            Self::TaskrunStarted030(_) => "started",
1572            Self::TaskrunStarted011(_) => "started",
1573            Self::TaskrunStarted020(_) => "started",
1574            Self::TestcaserunFinished030(_) => "finished",
1575            Self::TestcaserunFinished010(_) => "finished",
1576            Self::TestcaserunFinished020(_) => "finished",
1577            Self::TestcaserunQueued030(_) => "queued",
1578            Self::TestcaserunQueued010(_) => "queued",
1579            Self::TestcaserunQueued020(_) => "queued",
1580            Self::TestcaserunSkipped020(_) => "skipped",
1581            Self::TestcaserunSkipped010(_) => "skipped",
1582            Self::TestcaserunStarted030(_) => "started",
1583            Self::TestcaserunStarted010(_) => "started",
1584            Self::TestcaserunStarted020(_) => "started",
1585            Self::TestoutputPublished030(_) => "published",
1586            Self::TestoutputPublished010(_) => "published",
1587            Self::TestoutputPublished020(_) => "published",
1588            Self::TestsuiterunFinished030(_) => "finished",
1589            Self::TestsuiterunFinished010(_) => "finished",
1590            Self::TestsuiterunFinished020(_) => "finished",
1591            Self::TestsuiterunQueued030(_) => "queued",
1592            Self::TestsuiterunQueued010(_) => "queued",
1593            Self::TestsuiterunQueued020(_) => "queued",
1594            Self::TestsuiterunStarted030(_) => "started",
1595            Self::TestsuiterunStarted010(_) => "started",
1596            Self::TestsuiterunStarted020(_) => "started",
1597            Self::TicketClosed020(_) => "closed",
1598            Self::TicketClosed010(_) => "closed",
1599            Self::TicketCreated020(_) => "created",
1600            Self::TicketCreated010(_) => "created",
1601            Self::TicketUpdated020(_) => "updated",
1602            Self::TicketUpdated010(_) => "updated",
1603            Self::Custom{ty, ..} => ty.split('.').nth(3).unwrap_or_default(),
1604        }
1605    }
1606}
1607
1608/// Due to inconstency in case/format the subject could be not be extracted from the context.type (ty), jsonshema $id, spec filename (shema, examples)
1609/// Custom type are not supported
1610pub fn extract_subject_predicate(ty: &str) -> Option<(&str, &str)>{
1611    // let mut split = ty.split('.');
1612    match ty {
1613        ARTIFACT_DELETED_0_1_0 => Some(("artifact", "deleted")),
1614        ARTIFACT_DOWNLOADED_0_1_0 => Some(("artifact", "downloaded")),
1615        ARTIFACT_PACKAGED_0_1_1 => Some(("artifact", "packaged")),
1616        ARTIFACT_PACKAGED_0_2_0 => Some(("artifact", "packaged")),
1617        ARTIFACT_PUBLISHED_0_1_1 => Some(("artifact", "published")),
1618        ARTIFACT_PUBLISHED_0_2_0 => Some(("artifact", "published")),
1619        ARTIFACT_SIGNED_0_1_0 => Some(("artifact", "signed")),
1620        ARTIFACT_SIGNED_0_2_0 => Some(("artifact", "signed")),
1621        BRANCH_CREATED_0_1_2 => Some(("branch", "created")),
1622        BRANCH_CREATED_0_2_0 => Some(("branch", "created")),
1623        BRANCH_DELETED_0_1_2 => Some(("branch", "deleted")),
1624        BRANCH_DELETED_0_2_0 => Some(("branch", "deleted")),
1625        BUILD_FINISHED_0_1_1 => Some(("build", "finished")),
1626        BUILD_FINISHED_0_2_0 => Some(("build", "finished")),
1627        BUILD_QUEUED_0_1_1 => Some(("build", "queued")),
1628        BUILD_QUEUED_0_2_0 => Some(("build", "queued")),
1629        BUILD_STARTED_0_1_1 => Some(("build", "started")),
1630        BUILD_STARTED_0_2_0 => Some(("build", "started")),
1631        CHANGE_ABANDONED_0_1_2 => Some(("change", "abandoned")),
1632        CHANGE_ABANDONED_0_2_0 => Some(("change", "abandoned")),
1633        CHANGE_CREATED_0_1_2 => Some(("change", "created")),
1634        CHANGE_CREATED_0_3_0 => Some(("change", "created")),
1635        CHANGE_MERGED_0_1_2 => Some(("change", "merged")),
1636        CHANGE_MERGED_0_2_0 => Some(("change", "merged")),
1637        CHANGE_REVIEWED_0_1_2 => Some(("change", "reviewed")),
1638        CHANGE_REVIEWED_0_2_0 => Some(("change", "reviewed")),
1639        CHANGE_UPDATED_0_1_2 => Some(("change", "updated")),
1640        CHANGE_UPDATED_0_2_0 => Some(("change", "updated")),
1641        ENVIRONMENT_CREATED_0_1_1 => Some(("environment", "created")),
1642        ENVIRONMENT_CREATED_0_2_0 => Some(("environment", "created")),
1643        ENVIRONMENT_DELETED_0_1_1 => Some(("environment", "deleted")),
1644        ENVIRONMENT_DELETED_0_2_0 => Some(("environment", "deleted")),
1645        ENVIRONMENT_MODIFIED_0_1_1 => Some(("environment", "modified")),
1646        ENVIRONMENT_MODIFIED_0_2_0 => Some(("environment", "modified")),
1647        INCIDENT_DETECTED_0_1_0 => Some(("incident", "detected")),
1648        INCIDENT_DETECTED_0_2_0 => Some(("incident", "detected")),
1649        INCIDENT_REPORTED_0_1_0 => Some(("incident", "reported")),
1650        INCIDENT_REPORTED_0_2_0 => Some(("incident", "reported")),
1651        INCIDENT_RESOLVED_0_1_0 => Some(("incident", "resolved")),
1652        INCIDENT_RESOLVED_0_2_0 => Some(("incident", "resolved")),
1653        PIPELINERUN_FINISHED_0_1_1 => Some(("pipelineRun", "finished")),
1654        PIPELINERUN_FINISHED_0_2_0 => Some(("pipelineRun", "finished")),
1655        PIPELINERUN_QUEUED_0_1_1 => Some(("pipelineRun", "queued")),
1656        PIPELINERUN_QUEUED_0_2_0 => Some(("pipelineRun", "queued")),
1657        PIPELINERUN_STARTED_0_1_1 => Some(("pipelineRun", "started")),
1658        PIPELINERUN_STARTED_0_2_0 => Some(("pipelineRun", "started")),
1659        REPOSITORY_CREATED_0_1_1 => Some(("repository", "created")),
1660        REPOSITORY_CREATED_0_2_0 => Some(("repository", "created")),
1661        REPOSITORY_DELETED_0_1_1 => Some(("repository", "deleted")),
1662        REPOSITORY_DELETED_0_2_0 => Some(("repository", "deleted")),
1663        REPOSITORY_MODIFIED_0_1_1 => Some(("repository", "modified")),
1664        REPOSITORY_MODIFIED_0_2_0 => Some(("repository", "modified")),
1665        SERVICE_DEPLOYED_0_1_1 => Some(("service", "deployed")),
1666        SERVICE_DEPLOYED_0_2_0 => Some(("service", "deployed")),
1667        SERVICE_PUBLISHED_0_1_1 => Some(("service", "published")),
1668        SERVICE_PUBLISHED_0_2_0 => Some(("service", "published")),
1669        SERVICE_REMOVED_0_1_1 => Some(("service", "removed")),
1670        SERVICE_REMOVED_0_2_0 => Some(("service", "removed")),
1671        SERVICE_ROLLEDBACK_0_1_1 => Some(("service", "rolledback")),
1672        SERVICE_ROLLEDBACK_0_2_0 => Some(("service", "rolledback")),
1673        SERVICE_UPGRADED_0_1_1 => Some(("service", "upgraded")),
1674        SERVICE_UPGRADED_0_2_0 => Some(("service", "upgraded")),
1675        TASKRUN_FINISHED_0_1_1 => Some(("taskRun", "finished")),
1676        TASKRUN_FINISHED_0_2_0 => Some(("taskRun", "finished")),
1677        TASKRUN_STARTED_0_1_1 => Some(("taskRun", "started")),
1678        TASKRUN_STARTED_0_2_0 => Some(("taskRun", "started")),
1679        TESTCASERUN_FINISHED_0_1_0 => Some(("testCaseRun", "finished")),
1680        TESTCASERUN_FINISHED_0_2_0 => Some(("testCaseRun", "finished")),
1681        TESTCASERUN_QUEUED_0_1_0 => Some(("testCaseRun", "queued")),
1682        TESTCASERUN_QUEUED_0_2_0 => Some(("testCaseRun", "queued")),
1683        TESTCASERUN_SKIPPED_0_1_0 => Some(("testCaseRun", "skipped")),
1684        TESTCASERUN_STARTED_0_1_0 => Some(("testCaseRun", "started")),
1685        TESTCASERUN_STARTED_0_2_0 => Some(("testCaseRun", "started")),
1686        TESTOUTPUT_PUBLISHED_0_1_0 => Some(("testOutput", "published")),
1687        TESTOUTPUT_PUBLISHED_0_2_0 => Some(("testOutput", "published")),
1688        TESTSUITERUN_FINISHED_0_1_0 => Some(("testSuiteRun", "finished")),
1689        TESTSUITERUN_FINISHED_0_2_0 => Some(("testSuiteRun", "finished")),
1690        TESTSUITERUN_QUEUED_0_1_0 => Some(("testSuiteRun", "queued")),
1691        TESTSUITERUN_QUEUED_0_2_0 => Some(("testSuiteRun", "queued")),
1692        TESTSUITERUN_STARTED_0_1_0 => Some(("testSuiteRun", "started")),
1693        TESTSUITERUN_STARTED_0_2_0 => Some(("testSuiteRun", "started")),
1694        TICKET_CLOSED_0_1_0 => Some(("ticket", "closed")),
1695        TICKET_CREATED_0_1_0 => Some(("ticket", "created")),
1696        TICKET_UPDATED_0_1_0 => Some(("ticket", "updated")),
1697        _ => None,
1698    }
1699}
1700
1701/// Due to inconstency in case/format the subject could be not be extracted from the context.type (ty), jsonshema $id, spec filename (shema, examples)
1702/// Custom type are not supported
1703pub(crate) fn new_context(ty: &str) -> crate::context::ContextEnum {
1704    use crate::context::{ContextEnum, Context_0_3, Context_0_4, Context_0_5};
1705    match ty {
1706        ARTIFACT_DELETED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1707        ARTIFACT_DOWNLOADED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1708        ARTIFACT_PACKAGED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1709        ARTIFACT_PACKAGED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1710        ARTIFACT_PUBLISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1711        ARTIFACT_PUBLISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1712        ARTIFACT_SIGNED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1713        ARTIFACT_SIGNED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1714        BRANCH_CREATED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1715        BRANCH_CREATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1716        BRANCH_DELETED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1717        BRANCH_DELETED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1718        BUILD_FINISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1719        BUILD_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1720        BUILD_QUEUED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1721        BUILD_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1722        BUILD_STARTED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1723        BUILD_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1724        CHANGE_ABANDONED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1725        CHANGE_ABANDONED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1726        CHANGE_CREATED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1727        CHANGE_CREATED_0_3_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1728        CHANGE_MERGED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1729        CHANGE_MERGED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1730        CHANGE_REVIEWED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1731        CHANGE_REVIEWED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1732        CHANGE_UPDATED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1733        CHANGE_UPDATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1734        ENVIRONMENT_CREATED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1735        ENVIRONMENT_CREATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1736        ENVIRONMENT_DELETED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1737        ENVIRONMENT_DELETED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1738        ENVIRONMENT_MODIFIED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1739        ENVIRONMENT_MODIFIED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1740        INCIDENT_DETECTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1741        INCIDENT_DETECTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1742        INCIDENT_REPORTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1743        INCIDENT_REPORTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1744        INCIDENT_RESOLVED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1745        INCIDENT_RESOLVED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1746        PIPELINERUN_FINISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1747        PIPELINERUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1748        PIPELINERUN_QUEUED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1749        PIPELINERUN_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1750        PIPELINERUN_STARTED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1751        PIPELINERUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1752        REPOSITORY_CREATED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1753        REPOSITORY_CREATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1754        REPOSITORY_DELETED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1755        REPOSITORY_DELETED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1756        REPOSITORY_MODIFIED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1757        REPOSITORY_MODIFIED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1758        SERVICE_DEPLOYED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1759        SERVICE_DEPLOYED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1760        SERVICE_PUBLISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1761        SERVICE_PUBLISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1762        SERVICE_REMOVED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1763        SERVICE_REMOVED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1764        SERVICE_ROLLEDBACK_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1765        SERVICE_ROLLEDBACK_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1766        SERVICE_UPGRADED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1767        SERVICE_UPGRADED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1768        TASKRUN_FINISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1769        TASKRUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1770        TASKRUN_STARTED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1771        TASKRUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1772        TESTCASERUN_FINISHED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1773        TESTCASERUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1774        TESTCASERUN_QUEUED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1775        TESTCASERUN_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1776        TESTCASERUN_SKIPPED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1777        TESTCASERUN_STARTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1778        TESTCASERUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1779        TESTOUTPUT_PUBLISHED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1780        TESTOUTPUT_PUBLISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1781        TESTSUITERUN_FINISHED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1782        TESTSUITERUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1783        TESTSUITERUN_QUEUED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1784        TESTSUITERUN_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1785        TESTSUITERUN_STARTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1786        TESTSUITERUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1787        TICKET_CLOSED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1788        TICKET_CREATED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1789        TICKET_UPDATED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1790        _ => ContextEnum::Context_0_5(Context_0_5::new(ty.into())),
1791    }
1792}
1793
1794impl From<approval_closed_0_1_0::Content> for Content {
1795    fn from(value: approval_closed_0_1_0::Content) -> Self {
1796        Self::ApprovalClosed010(value)
1797    }
1798}
1799impl From<approval_created_0_1_0::Content> for Content {
1800    fn from(value: approval_created_0_1_0::Content) -> Self {
1801        Self::ApprovalCreated010(value)
1802    }
1803}
1804impl From<approval_updated_0_1_0::Content> for Content {
1805    fn from(value: approval_updated_0_1_0::Content) -> Self {
1806        Self::ApprovalUpdated010(value)
1807    }
1808}
1809impl From<artifact_deleted_0_2_0::Content> for Content {
1810    fn from(value: artifact_deleted_0_2_0::Content) -> Self {
1811        Self::ArtifactDeleted020(value)
1812    }
1813}
1814impl From<artifact_deleted_0_1_0::Content> for Content {
1815    fn from(value: artifact_deleted_0_1_0::Content) -> Self {
1816        Self::ArtifactDeleted010(value)
1817    }
1818}
1819impl From<artifact_downloaded_0_2_0::Content> for Content {
1820    fn from(value: artifact_downloaded_0_2_0::Content) -> Self {
1821        Self::ArtifactDownloaded020(value)
1822    }
1823}
1824impl From<artifact_downloaded_0_1_0::Content> for Content {
1825    fn from(value: artifact_downloaded_0_1_0::Content) -> Self {
1826        Self::ArtifactDownloaded010(value)
1827    }
1828}
1829impl From<artifact_packaged_0_3_0::Content> for Content {
1830    fn from(value: artifact_packaged_0_3_0::Content) -> Self {
1831        Self::ArtifactPackaged030(value)
1832    }
1833}
1834impl From<artifact_packaged_0_1_1::Content> for Content {
1835    fn from(value: artifact_packaged_0_1_1::Content) -> Self {
1836        Self::ArtifactPackaged011(value)
1837    }
1838}
1839impl From<artifact_packaged_0_2_0::Content> for Content {
1840    fn from(value: artifact_packaged_0_2_0::Content) -> Self {
1841        Self::ArtifactPackaged020(value)
1842    }
1843}
1844impl From<artifact_published_0_3_0::Content> for Content {
1845    fn from(value: artifact_published_0_3_0::Content) -> Self {
1846        Self::ArtifactPublished030(value)
1847    }
1848}
1849impl From<artifact_published_0_1_1::Content> for Content {
1850    fn from(value: artifact_published_0_1_1::Content) -> Self {
1851        Self::ArtifactPublished011(value)
1852    }
1853}
1854impl From<artifact_published_0_2_0::Content> for Content {
1855    fn from(value: artifact_published_0_2_0::Content) -> Self {
1856        Self::ArtifactPublished020(value)
1857    }
1858}
1859impl From<artifact_signed_0_3_0::Content> for Content {
1860    fn from(value: artifact_signed_0_3_0::Content) -> Self {
1861        Self::ArtifactSigned030(value)
1862    }
1863}
1864impl From<artifact_signed_0_1_0::Content> for Content {
1865    fn from(value: artifact_signed_0_1_0::Content) -> Self {
1866        Self::ArtifactSigned010(value)
1867    }
1868}
1869impl From<artifact_signed_0_2_0::Content> for Content {
1870    fn from(value: artifact_signed_0_2_0::Content) -> Self {
1871        Self::ArtifactSigned020(value)
1872    }
1873}
1874impl From<branch_created_0_3_0::Content> for Content {
1875    fn from(value: branch_created_0_3_0::Content) -> Self {
1876        Self::BranchCreated030(value)
1877    }
1878}
1879impl From<branch_created_0_1_2::Content> for Content {
1880    fn from(value: branch_created_0_1_2::Content) -> Self {
1881        Self::BranchCreated012(value)
1882    }
1883}
1884impl From<branch_created_0_2_0::Content> for Content {
1885    fn from(value: branch_created_0_2_0::Content) -> Self {
1886        Self::BranchCreated020(value)
1887    }
1888}
1889impl From<branch_deleted_0_3_0::Content> for Content {
1890    fn from(value: branch_deleted_0_3_0::Content) -> Self {
1891        Self::BranchDeleted030(value)
1892    }
1893}
1894impl From<branch_deleted_0_1_2::Content> for Content {
1895    fn from(value: branch_deleted_0_1_2::Content) -> Self {
1896        Self::BranchDeleted012(value)
1897    }
1898}
1899impl From<branch_deleted_0_2_0::Content> for Content {
1900    fn from(value: branch_deleted_0_2_0::Content) -> Self {
1901        Self::BranchDeleted020(value)
1902    }
1903}
1904impl From<build_finished_0_3_0::Content> for Content {
1905    fn from(value: build_finished_0_3_0::Content) -> Self {
1906        Self::BuildFinished030(value)
1907    }
1908}
1909impl From<build_finished_0_1_1::Content> for Content {
1910    fn from(value: build_finished_0_1_1::Content) -> Self {
1911        Self::BuildFinished011(value)
1912    }
1913}
1914impl From<build_finished_0_2_0::Content> for Content {
1915    fn from(value: build_finished_0_2_0::Content) -> Self {
1916        Self::BuildFinished020(value)
1917    }
1918}
1919impl From<build_queued_0_3_0::Content> for Content {
1920    fn from(value: build_queued_0_3_0::Content) -> Self {
1921        Self::BuildQueued030(value)
1922    }
1923}
1924impl From<build_queued_0_1_1::Content> for Content {
1925    fn from(value: build_queued_0_1_1::Content) -> Self {
1926        Self::BuildQueued011(value)
1927    }
1928}
1929impl From<build_queued_0_2_0::Content> for Content {
1930    fn from(value: build_queued_0_2_0::Content) -> Self {
1931        Self::BuildQueued020(value)
1932    }
1933}
1934impl From<build_started_0_3_0::Content> for Content {
1935    fn from(value: build_started_0_3_0::Content) -> Self {
1936        Self::BuildStarted030(value)
1937    }
1938}
1939impl From<build_started_0_1_1::Content> for Content {
1940    fn from(value: build_started_0_1_1::Content) -> Self {
1941        Self::BuildStarted011(value)
1942    }
1943}
1944impl From<build_started_0_2_0::Content> for Content {
1945    fn from(value: build_started_0_2_0::Content) -> Self {
1946        Self::BuildStarted020(value)
1947    }
1948}
1949impl From<change_abandoned_0_3_0::Content> for Content {
1950    fn from(value: change_abandoned_0_3_0::Content) -> Self {
1951        Self::ChangeAbandoned030(value)
1952    }
1953}
1954impl From<change_abandoned_0_1_2::Content> for Content {
1955    fn from(value: change_abandoned_0_1_2::Content) -> Self {
1956        Self::ChangeAbandoned012(value)
1957    }
1958}
1959impl From<change_abandoned_0_2_0::Content> for Content {
1960    fn from(value: change_abandoned_0_2_0::Content) -> Self {
1961        Self::ChangeAbandoned020(value)
1962    }
1963}
1964impl From<change_created_0_4_0::Content> for Content {
1965    fn from(value: change_created_0_4_0::Content) -> Self {
1966        Self::ChangeCreated040(value)
1967    }
1968}
1969impl From<change_created_0_1_2::Content> for Content {
1970    fn from(value: change_created_0_1_2::Content) -> Self {
1971        Self::ChangeCreated012(value)
1972    }
1973}
1974impl From<change_created_0_3_0::Content> for Content {
1975    fn from(value: change_created_0_3_0::Content) -> Self {
1976        Self::ChangeCreated030(value)
1977    }
1978}
1979impl From<change_merged_0_3_0::Content> for Content {
1980    fn from(value: change_merged_0_3_0::Content) -> Self {
1981        Self::ChangeMerged030(value)
1982    }
1983}
1984impl From<change_merged_0_1_2::Content> for Content {
1985    fn from(value: change_merged_0_1_2::Content) -> Self {
1986        Self::ChangeMerged012(value)
1987    }
1988}
1989impl From<change_merged_0_2_0::Content> for Content {
1990    fn from(value: change_merged_0_2_0::Content) -> Self {
1991        Self::ChangeMerged020(value)
1992    }
1993}
1994impl From<change_reviewed_0_3_0::Content> for Content {
1995    fn from(value: change_reviewed_0_3_0::Content) -> Self {
1996        Self::ChangeReviewed030(value)
1997    }
1998}
1999impl From<change_reviewed_0_1_2::Content> for Content {
2000    fn from(value: change_reviewed_0_1_2::Content) -> Self {
2001        Self::ChangeReviewed012(value)
2002    }
2003}
2004impl From<change_reviewed_0_2_0::Content> for Content {
2005    fn from(value: change_reviewed_0_2_0::Content) -> Self {
2006        Self::ChangeReviewed020(value)
2007    }
2008}
2009impl From<change_updated_0_3_0::Content> for Content {
2010    fn from(value: change_updated_0_3_0::Content) -> Self {
2011        Self::ChangeUpdated030(value)
2012    }
2013}
2014impl From<change_updated_0_1_2::Content> for Content {
2015    fn from(value: change_updated_0_1_2::Content) -> Self {
2016        Self::ChangeUpdated012(value)
2017    }
2018}
2019impl From<change_updated_0_2_0::Content> for Content {
2020    fn from(value: change_updated_0_2_0::Content) -> Self {
2021        Self::ChangeUpdated020(value)
2022    }
2023}
2024impl From<environment_created_0_3_0::Content> for Content {
2025    fn from(value: environment_created_0_3_0::Content) -> Self {
2026        Self::EnvironmentCreated030(value)
2027    }
2028}
2029impl From<environment_created_0_1_1::Content> for Content {
2030    fn from(value: environment_created_0_1_1::Content) -> Self {
2031        Self::EnvironmentCreated011(value)
2032    }
2033}
2034impl From<environment_created_0_2_0::Content> for Content {
2035    fn from(value: environment_created_0_2_0::Content) -> Self {
2036        Self::EnvironmentCreated020(value)
2037    }
2038}
2039impl From<environment_deleted_0_3_0::Content> for Content {
2040    fn from(value: environment_deleted_0_3_0::Content) -> Self {
2041        Self::EnvironmentDeleted030(value)
2042    }
2043}
2044impl From<environment_deleted_0_1_1::Content> for Content {
2045    fn from(value: environment_deleted_0_1_1::Content) -> Self {
2046        Self::EnvironmentDeleted011(value)
2047    }
2048}
2049impl From<environment_deleted_0_2_0::Content> for Content {
2050    fn from(value: environment_deleted_0_2_0::Content) -> Self {
2051        Self::EnvironmentDeleted020(value)
2052    }
2053}
2054impl From<environment_modified_0_3_0::Content> for Content {
2055    fn from(value: environment_modified_0_3_0::Content) -> Self {
2056        Self::EnvironmentModified030(value)
2057    }
2058}
2059impl From<environment_modified_0_1_1::Content> for Content {
2060    fn from(value: environment_modified_0_1_1::Content) -> Self {
2061        Self::EnvironmentModified011(value)
2062    }
2063}
2064impl From<environment_modified_0_2_0::Content> for Content {
2065    fn from(value: environment_modified_0_2_0::Content) -> Self {
2066        Self::EnvironmentModified020(value)
2067    }
2068}
2069impl From<incident_detected_0_3_0::Content> for Content {
2070    fn from(value: incident_detected_0_3_0::Content) -> Self {
2071        Self::IncidentDetected030(value)
2072    }
2073}
2074impl From<incident_detected_0_1_0::Content> for Content {
2075    fn from(value: incident_detected_0_1_0::Content) -> Self {
2076        Self::IncidentDetected010(value)
2077    }
2078}
2079impl From<incident_detected_0_2_0::Content> for Content {
2080    fn from(value: incident_detected_0_2_0::Content) -> Self {
2081        Self::IncidentDetected020(value)
2082    }
2083}
2084impl From<incident_reported_0_3_0::Content> for Content {
2085    fn from(value: incident_reported_0_3_0::Content) -> Self {
2086        Self::IncidentReported030(value)
2087    }
2088}
2089impl From<incident_reported_0_1_0::Content> for Content {
2090    fn from(value: incident_reported_0_1_0::Content) -> Self {
2091        Self::IncidentReported010(value)
2092    }
2093}
2094impl From<incident_reported_0_2_0::Content> for Content {
2095    fn from(value: incident_reported_0_2_0::Content) -> Self {
2096        Self::IncidentReported020(value)
2097    }
2098}
2099impl From<incident_resolved_0_3_0::Content> for Content {
2100    fn from(value: incident_resolved_0_3_0::Content) -> Self {
2101        Self::IncidentResolved030(value)
2102    }
2103}
2104impl From<incident_resolved_0_1_0::Content> for Content {
2105    fn from(value: incident_resolved_0_1_0::Content) -> Self {
2106        Self::IncidentResolved010(value)
2107    }
2108}
2109impl From<incident_resolved_0_2_0::Content> for Content {
2110    fn from(value: incident_resolved_0_2_0::Content) -> Self {
2111        Self::IncidentResolved020(value)
2112    }
2113}
2114impl From<pipelinerun_finished_0_3_0::Content> for Content {
2115    fn from(value: pipelinerun_finished_0_3_0::Content) -> Self {
2116        Self::PipelinerunFinished030(value)
2117    }
2118}
2119impl From<pipelinerun_finished_0_1_1::Content> for Content {
2120    fn from(value: pipelinerun_finished_0_1_1::Content) -> Self {
2121        Self::PipelinerunFinished011(value)
2122    }
2123}
2124impl From<pipelinerun_finished_0_2_0::Content> for Content {
2125    fn from(value: pipelinerun_finished_0_2_0::Content) -> Self {
2126        Self::PipelinerunFinished020(value)
2127    }
2128}
2129impl From<pipelinerun_queued_0_3_0::Content> for Content {
2130    fn from(value: pipelinerun_queued_0_3_0::Content) -> Self {
2131        Self::PipelinerunQueued030(value)
2132    }
2133}
2134impl From<pipelinerun_queued_0_1_1::Content> for Content {
2135    fn from(value: pipelinerun_queued_0_1_1::Content) -> Self {
2136        Self::PipelinerunQueued011(value)
2137    }
2138}
2139impl From<pipelinerun_queued_0_2_0::Content> for Content {
2140    fn from(value: pipelinerun_queued_0_2_0::Content) -> Self {
2141        Self::PipelinerunQueued020(value)
2142    }
2143}
2144impl From<pipelinerun_started_0_3_0::Content> for Content {
2145    fn from(value: pipelinerun_started_0_3_0::Content) -> Self {
2146        Self::PipelinerunStarted030(value)
2147    }
2148}
2149impl From<pipelinerun_started_0_1_1::Content> for Content {
2150    fn from(value: pipelinerun_started_0_1_1::Content) -> Self {
2151        Self::PipelinerunStarted011(value)
2152    }
2153}
2154impl From<pipelinerun_started_0_2_0::Content> for Content {
2155    fn from(value: pipelinerun_started_0_2_0::Content) -> Self {
2156        Self::PipelinerunStarted020(value)
2157    }
2158}
2159impl From<repository_created_0_3_0::Content> for Content {
2160    fn from(value: repository_created_0_3_0::Content) -> Self {
2161        Self::RepositoryCreated030(value)
2162    }
2163}
2164impl From<repository_created_0_1_1::Content> for Content {
2165    fn from(value: repository_created_0_1_1::Content) -> Self {
2166        Self::RepositoryCreated011(value)
2167    }
2168}
2169impl From<repository_created_0_2_0::Content> for Content {
2170    fn from(value: repository_created_0_2_0::Content) -> Self {
2171        Self::RepositoryCreated020(value)
2172    }
2173}
2174impl From<repository_deleted_0_3_0::Content> for Content {
2175    fn from(value: repository_deleted_0_3_0::Content) -> Self {
2176        Self::RepositoryDeleted030(value)
2177    }
2178}
2179impl From<repository_deleted_0_1_1::Content> for Content {
2180    fn from(value: repository_deleted_0_1_1::Content) -> Self {
2181        Self::RepositoryDeleted011(value)
2182    }
2183}
2184impl From<repository_deleted_0_2_0::Content> for Content {
2185    fn from(value: repository_deleted_0_2_0::Content) -> Self {
2186        Self::RepositoryDeleted020(value)
2187    }
2188}
2189impl From<repository_modified_0_3_0::Content> for Content {
2190    fn from(value: repository_modified_0_3_0::Content) -> Self {
2191        Self::RepositoryModified030(value)
2192    }
2193}
2194impl From<repository_modified_0_1_1::Content> for Content {
2195    fn from(value: repository_modified_0_1_1::Content) -> Self {
2196        Self::RepositoryModified011(value)
2197    }
2198}
2199impl From<repository_modified_0_2_0::Content> for Content {
2200    fn from(value: repository_modified_0_2_0::Content) -> Self {
2201        Self::RepositoryModified020(value)
2202    }
2203}
2204impl From<service_deployed_0_3_0::Content> for Content {
2205    fn from(value: service_deployed_0_3_0::Content) -> Self {
2206        Self::ServiceDeployed030(value)
2207    }
2208}
2209impl From<service_deployed_0_1_1::Content> for Content {
2210    fn from(value: service_deployed_0_1_1::Content) -> Self {
2211        Self::ServiceDeployed011(value)
2212    }
2213}
2214impl From<service_deployed_0_2_0::Content> for Content {
2215    fn from(value: service_deployed_0_2_0::Content) -> Self {
2216        Self::ServiceDeployed020(value)
2217    }
2218}
2219impl From<service_published_0_3_0::Content> for Content {
2220    fn from(value: service_published_0_3_0::Content) -> Self {
2221        Self::ServicePublished030(value)
2222    }
2223}
2224impl From<service_published_0_1_1::Content> for Content {
2225    fn from(value: service_published_0_1_1::Content) -> Self {
2226        Self::ServicePublished011(value)
2227    }
2228}
2229impl From<service_published_0_2_0::Content> for Content {
2230    fn from(value: service_published_0_2_0::Content) -> Self {
2231        Self::ServicePublished020(value)
2232    }
2233}
2234impl From<service_removed_0_3_0::Content> for Content {
2235    fn from(value: service_removed_0_3_0::Content) -> Self {
2236        Self::ServiceRemoved030(value)
2237    }
2238}
2239impl From<service_removed_0_1_1::Content> for Content {
2240    fn from(value: service_removed_0_1_1::Content) -> Self {
2241        Self::ServiceRemoved011(value)
2242    }
2243}
2244impl From<service_removed_0_2_0::Content> for Content {
2245    fn from(value: service_removed_0_2_0::Content) -> Self {
2246        Self::ServiceRemoved020(value)
2247    }
2248}
2249impl From<service_rolledback_0_3_0::Content> for Content {
2250    fn from(value: service_rolledback_0_3_0::Content) -> Self {
2251        Self::ServiceRolledback030(value)
2252    }
2253}
2254impl From<service_rolledback_0_1_1::Content> for Content {
2255    fn from(value: service_rolledback_0_1_1::Content) -> Self {
2256        Self::ServiceRolledback011(value)
2257    }
2258}
2259impl From<service_rolledback_0_2_0::Content> for Content {
2260    fn from(value: service_rolledback_0_2_0::Content) -> Self {
2261        Self::ServiceRolledback020(value)
2262    }
2263}
2264impl From<service_upgraded_0_3_0::Content> for Content {
2265    fn from(value: service_upgraded_0_3_0::Content) -> Self {
2266        Self::ServiceUpgraded030(value)
2267    }
2268}
2269impl From<service_upgraded_0_1_1::Content> for Content {
2270    fn from(value: service_upgraded_0_1_1::Content) -> Self {
2271        Self::ServiceUpgraded011(value)
2272    }
2273}
2274impl From<service_upgraded_0_2_0::Content> for Content {
2275    fn from(value: service_upgraded_0_2_0::Content) -> Self {
2276        Self::ServiceUpgraded020(value)
2277    }
2278}
2279impl From<taskrun_finished_0_3_0::Content> for Content {
2280    fn from(value: taskrun_finished_0_3_0::Content) -> Self {
2281        Self::TaskrunFinished030(value)
2282    }
2283}
2284impl From<taskrun_finished_0_1_1::Content> for Content {
2285    fn from(value: taskrun_finished_0_1_1::Content) -> Self {
2286        Self::TaskrunFinished011(value)
2287    }
2288}
2289impl From<taskrun_finished_0_2_0::Content> for Content {
2290    fn from(value: taskrun_finished_0_2_0::Content) -> Self {
2291        Self::TaskrunFinished020(value)
2292    }
2293}
2294impl From<taskrun_started_0_3_0::Content> for Content {
2295    fn from(value: taskrun_started_0_3_0::Content) -> Self {
2296        Self::TaskrunStarted030(value)
2297    }
2298}
2299impl From<taskrun_started_0_1_1::Content> for Content {
2300    fn from(value: taskrun_started_0_1_1::Content) -> Self {
2301        Self::TaskrunStarted011(value)
2302    }
2303}
2304impl From<taskrun_started_0_2_0::Content> for Content {
2305    fn from(value: taskrun_started_0_2_0::Content) -> Self {
2306        Self::TaskrunStarted020(value)
2307    }
2308}
2309impl From<testcaserun_finished_0_3_0::Content> for Content {
2310    fn from(value: testcaserun_finished_0_3_0::Content) -> Self {
2311        Self::TestcaserunFinished030(value)
2312    }
2313}
2314impl From<testcaserun_finished_0_1_0::Content> for Content {
2315    fn from(value: testcaserun_finished_0_1_0::Content) -> Self {
2316        Self::TestcaserunFinished010(value)
2317    }
2318}
2319impl From<testcaserun_finished_0_2_0::Content> for Content {
2320    fn from(value: testcaserun_finished_0_2_0::Content) -> Self {
2321        Self::TestcaserunFinished020(value)
2322    }
2323}
2324impl From<testcaserun_queued_0_3_0::Content> for Content {
2325    fn from(value: testcaserun_queued_0_3_0::Content) -> Self {
2326        Self::TestcaserunQueued030(value)
2327    }
2328}
2329impl From<testcaserun_queued_0_1_0::Content> for Content {
2330    fn from(value: testcaserun_queued_0_1_0::Content) -> Self {
2331        Self::TestcaserunQueued010(value)
2332    }
2333}
2334impl From<testcaserun_queued_0_2_0::Content> for Content {
2335    fn from(value: testcaserun_queued_0_2_0::Content) -> Self {
2336        Self::TestcaserunQueued020(value)
2337    }
2338}
2339impl From<testcaserun_skipped_0_2_0::Content> for Content {
2340    fn from(value: testcaserun_skipped_0_2_0::Content) -> Self {
2341        Self::TestcaserunSkipped020(value)
2342    }
2343}
2344impl From<testcaserun_skipped_0_1_0::Content> for Content {
2345    fn from(value: testcaserun_skipped_0_1_0::Content) -> Self {
2346        Self::TestcaserunSkipped010(value)
2347    }
2348}
2349impl From<testcaserun_started_0_3_0::Content> for Content {
2350    fn from(value: testcaserun_started_0_3_0::Content) -> Self {
2351        Self::TestcaserunStarted030(value)
2352    }
2353}
2354impl From<testcaserun_started_0_1_0::Content> for Content {
2355    fn from(value: testcaserun_started_0_1_0::Content) -> Self {
2356        Self::TestcaserunStarted010(value)
2357    }
2358}
2359impl From<testcaserun_started_0_2_0::Content> for Content {
2360    fn from(value: testcaserun_started_0_2_0::Content) -> Self {
2361        Self::TestcaserunStarted020(value)
2362    }
2363}
2364impl From<testoutput_published_0_3_0::Content> for Content {
2365    fn from(value: testoutput_published_0_3_0::Content) -> Self {
2366        Self::TestoutputPublished030(value)
2367    }
2368}
2369impl From<testoutput_published_0_1_0::Content> for Content {
2370    fn from(value: testoutput_published_0_1_0::Content) -> Self {
2371        Self::TestoutputPublished010(value)
2372    }
2373}
2374impl From<testoutput_published_0_2_0::Content> for Content {
2375    fn from(value: testoutput_published_0_2_0::Content) -> Self {
2376        Self::TestoutputPublished020(value)
2377    }
2378}
2379impl From<testsuiterun_finished_0_3_0::Content> for Content {
2380    fn from(value: testsuiterun_finished_0_3_0::Content) -> Self {
2381        Self::TestsuiterunFinished030(value)
2382    }
2383}
2384impl From<testsuiterun_finished_0_1_0::Content> for Content {
2385    fn from(value: testsuiterun_finished_0_1_0::Content) -> Self {
2386        Self::TestsuiterunFinished010(value)
2387    }
2388}
2389impl From<testsuiterun_finished_0_2_0::Content> for Content {
2390    fn from(value: testsuiterun_finished_0_2_0::Content) -> Self {
2391        Self::TestsuiterunFinished020(value)
2392    }
2393}
2394impl From<testsuiterun_queued_0_3_0::Content> for Content {
2395    fn from(value: testsuiterun_queued_0_3_0::Content) -> Self {
2396        Self::TestsuiterunQueued030(value)
2397    }
2398}
2399impl From<testsuiterun_queued_0_1_0::Content> for Content {
2400    fn from(value: testsuiterun_queued_0_1_0::Content) -> Self {
2401        Self::TestsuiterunQueued010(value)
2402    }
2403}
2404impl From<testsuiterun_queued_0_2_0::Content> for Content {
2405    fn from(value: testsuiterun_queued_0_2_0::Content) -> Self {
2406        Self::TestsuiterunQueued020(value)
2407    }
2408}
2409impl From<testsuiterun_started_0_3_0::Content> for Content {
2410    fn from(value: testsuiterun_started_0_3_0::Content) -> Self {
2411        Self::TestsuiterunStarted030(value)
2412    }
2413}
2414impl From<testsuiterun_started_0_1_0::Content> for Content {
2415    fn from(value: testsuiterun_started_0_1_0::Content) -> Self {
2416        Self::TestsuiterunStarted010(value)
2417    }
2418}
2419impl From<testsuiterun_started_0_2_0::Content> for Content {
2420    fn from(value: testsuiterun_started_0_2_0::Content) -> Self {
2421        Self::TestsuiterunStarted020(value)
2422    }
2423}
2424impl From<ticket_closed_0_2_0::Content> for Content {
2425    fn from(value: ticket_closed_0_2_0::Content) -> Self {
2426        Self::TicketClosed020(value)
2427    }
2428}
2429impl From<ticket_closed_0_1_0::Content> for Content {
2430    fn from(value: ticket_closed_0_1_0::Content) -> Self {
2431        Self::TicketClosed010(value)
2432    }
2433}
2434impl From<ticket_created_0_2_0::Content> for Content {
2435    fn from(value: ticket_created_0_2_0::Content) -> Self {
2436        Self::TicketCreated020(value)
2437    }
2438}
2439impl From<ticket_created_0_1_0::Content> for Content {
2440    fn from(value: ticket_created_0_1_0::Content) -> Self {
2441        Self::TicketCreated010(value)
2442    }
2443}
2444impl From<ticket_updated_0_2_0::Content> for Content {
2445    fn from(value: ticket_updated_0_2_0::Content) -> Self {
2446        Self::TicketUpdated020(value)
2447    }
2448}
2449impl From<ticket_updated_0_1_0::Content> for Content {
2450    fn from(value: ticket_updated_0_1_0::Content) -> Self {
2451        Self::TicketUpdated010(value)
2452    }
2453}
2454
2455#[cfg(feature = "testkit")]
2456impl<> proptest::arbitrary::Arbitrary for Content {
2457    type Parameters = ();
2458    type Strategy = proptest::strategy::BoxedStrategy<Self>;
2459
2460    fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
2461        use proptest::prelude::*;
2462        prop_oneof![
2463            any::<approval_closed_0_1_0::Content>().prop_map(Content::from),
2464            any::<approval_created_0_1_0::Content>().prop_map(Content::from),
2465            any::<approval_updated_0_1_0::Content>().prop_map(Content::from),
2466            any::<artifact_deleted_0_2_0::Content>().prop_map(Content::from),
2467            any::<artifact_deleted_0_1_0::Content>().prop_map(Content::from),
2468            any::<artifact_downloaded_0_2_0::Content>().prop_map(Content::from),
2469            any::<artifact_downloaded_0_1_0::Content>().prop_map(Content::from),
2470            any::<artifact_packaged_0_3_0::Content>().prop_map(Content::from),
2471            any::<artifact_packaged_0_1_1::Content>().prop_map(Content::from),
2472            any::<artifact_packaged_0_2_0::Content>().prop_map(Content::from),
2473            any::<artifact_published_0_3_0::Content>().prop_map(Content::from),
2474            any::<artifact_published_0_1_1::Content>().prop_map(Content::from),
2475            any::<artifact_published_0_2_0::Content>().prop_map(Content::from),
2476            any::<artifact_signed_0_3_0::Content>().prop_map(Content::from),
2477            any::<artifact_signed_0_1_0::Content>().prop_map(Content::from),
2478            any::<artifact_signed_0_2_0::Content>().prop_map(Content::from),
2479            any::<branch_created_0_3_0::Content>().prop_map(Content::from),
2480            any::<branch_created_0_1_2::Content>().prop_map(Content::from),
2481            any::<branch_created_0_2_0::Content>().prop_map(Content::from),
2482            any::<branch_deleted_0_3_0::Content>().prop_map(Content::from),
2483            any::<branch_deleted_0_1_2::Content>().prop_map(Content::from),
2484            any::<branch_deleted_0_2_0::Content>().prop_map(Content::from),
2485            any::<build_finished_0_3_0::Content>().prop_map(Content::from),
2486            any::<build_finished_0_1_1::Content>().prop_map(Content::from),
2487            any::<build_finished_0_2_0::Content>().prop_map(Content::from),
2488            any::<build_queued_0_3_0::Content>().prop_map(Content::from),
2489            any::<build_queued_0_1_1::Content>().prop_map(Content::from),
2490            any::<build_queued_0_2_0::Content>().prop_map(Content::from),
2491            any::<build_started_0_3_0::Content>().prop_map(Content::from),
2492            any::<build_started_0_1_1::Content>().prop_map(Content::from),
2493            any::<build_started_0_2_0::Content>().prop_map(Content::from),
2494            any::<change_abandoned_0_3_0::Content>().prop_map(Content::from),
2495            any::<change_abandoned_0_1_2::Content>().prop_map(Content::from),
2496            any::<change_abandoned_0_2_0::Content>().prop_map(Content::from),
2497            any::<change_created_0_4_0::Content>().prop_map(Content::from),
2498            any::<change_created_0_1_2::Content>().prop_map(Content::from),
2499            any::<change_created_0_3_0::Content>().prop_map(Content::from),
2500            any::<change_merged_0_3_0::Content>().prop_map(Content::from),
2501            any::<change_merged_0_1_2::Content>().prop_map(Content::from),
2502            any::<change_merged_0_2_0::Content>().prop_map(Content::from),
2503            any::<change_reviewed_0_3_0::Content>().prop_map(Content::from),
2504            any::<change_reviewed_0_1_2::Content>().prop_map(Content::from),
2505            any::<change_reviewed_0_2_0::Content>().prop_map(Content::from),
2506            any::<change_updated_0_3_0::Content>().prop_map(Content::from),
2507            any::<change_updated_0_1_2::Content>().prop_map(Content::from),
2508            any::<change_updated_0_2_0::Content>().prop_map(Content::from),
2509            any::<environment_created_0_3_0::Content>().prop_map(Content::from),
2510            any::<environment_created_0_1_1::Content>().prop_map(Content::from),
2511            any::<environment_created_0_2_0::Content>().prop_map(Content::from),
2512            any::<environment_deleted_0_3_0::Content>().prop_map(Content::from),
2513            any::<environment_deleted_0_1_1::Content>().prop_map(Content::from),
2514            any::<environment_deleted_0_2_0::Content>().prop_map(Content::from),
2515            any::<environment_modified_0_3_0::Content>().prop_map(Content::from),
2516            any::<environment_modified_0_1_1::Content>().prop_map(Content::from),
2517            any::<environment_modified_0_2_0::Content>().prop_map(Content::from),
2518            any::<incident_detected_0_3_0::Content>().prop_map(Content::from),
2519            any::<incident_detected_0_1_0::Content>().prop_map(Content::from),
2520            any::<incident_detected_0_2_0::Content>().prop_map(Content::from),
2521            any::<incident_reported_0_3_0::Content>().prop_map(Content::from),
2522            any::<incident_reported_0_1_0::Content>().prop_map(Content::from),
2523            any::<incident_reported_0_2_0::Content>().prop_map(Content::from),
2524            any::<incident_resolved_0_3_0::Content>().prop_map(Content::from),
2525            any::<incident_resolved_0_1_0::Content>().prop_map(Content::from),
2526            any::<incident_resolved_0_2_0::Content>().prop_map(Content::from),
2527            any::<pipelinerun_finished_0_3_0::Content>().prop_map(Content::from),
2528            any::<pipelinerun_finished_0_1_1::Content>().prop_map(Content::from),
2529            any::<pipelinerun_finished_0_2_0::Content>().prop_map(Content::from),
2530            any::<pipelinerun_queued_0_3_0::Content>().prop_map(Content::from),
2531            any::<pipelinerun_queued_0_1_1::Content>().prop_map(Content::from),
2532            any::<pipelinerun_queued_0_2_0::Content>().prop_map(Content::from),
2533            any::<pipelinerun_started_0_3_0::Content>().prop_map(Content::from),
2534            any::<pipelinerun_started_0_1_1::Content>().prop_map(Content::from),
2535            any::<pipelinerun_started_0_2_0::Content>().prop_map(Content::from),
2536            any::<repository_created_0_3_0::Content>().prop_map(Content::from),
2537            any::<repository_created_0_1_1::Content>().prop_map(Content::from),
2538            any::<repository_created_0_2_0::Content>().prop_map(Content::from),
2539            any::<repository_deleted_0_3_0::Content>().prop_map(Content::from),
2540            any::<repository_deleted_0_1_1::Content>().prop_map(Content::from),
2541            any::<repository_deleted_0_2_0::Content>().prop_map(Content::from),
2542            any::<repository_modified_0_3_0::Content>().prop_map(Content::from),
2543            any::<repository_modified_0_1_1::Content>().prop_map(Content::from),
2544            any::<repository_modified_0_2_0::Content>().prop_map(Content::from),
2545            any::<service_deployed_0_3_0::Content>().prop_map(Content::from),
2546            any::<service_deployed_0_1_1::Content>().prop_map(Content::from),
2547            any::<service_deployed_0_2_0::Content>().prop_map(Content::from),
2548            any::<service_published_0_3_0::Content>().prop_map(Content::from),
2549            any::<service_published_0_1_1::Content>().prop_map(Content::from),
2550            any::<service_published_0_2_0::Content>().prop_map(Content::from),
2551            any::<service_removed_0_3_0::Content>().prop_map(Content::from),
2552            any::<service_removed_0_1_1::Content>().prop_map(Content::from),
2553            any::<service_removed_0_2_0::Content>().prop_map(Content::from),
2554            any::<service_rolledback_0_3_0::Content>().prop_map(Content::from),
2555            any::<service_rolledback_0_1_1::Content>().prop_map(Content::from),
2556            any::<service_rolledback_0_2_0::Content>().prop_map(Content::from),
2557            any::<service_upgraded_0_3_0::Content>().prop_map(Content::from),
2558            any::<service_upgraded_0_1_1::Content>().prop_map(Content::from),
2559            any::<service_upgraded_0_2_0::Content>().prop_map(Content::from),
2560            any::<taskrun_finished_0_3_0::Content>().prop_map(Content::from),
2561            any::<taskrun_finished_0_1_1::Content>().prop_map(Content::from),
2562            any::<taskrun_finished_0_2_0::Content>().prop_map(Content::from),
2563            any::<taskrun_started_0_3_0::Content>().prop_map(Content::from),
2564            any::<taskrun_started_0_1_1::Content>().prop_map(Content::from),
2565            any::<taskrun_started_0_2_0::Content>().prop_map(Content::from),
2566            any::<testcaserun_finished_0_3_0::Content>().prop_map(Content::from),
2567            any::<testcaserun_finished_0_1_0::Content>().prop_map(Content::from),
2568            any::<testcaserun_finished_0_2_0::Content>().prop_map(Content::from),
2569            any::<testcaserun_queued_0_3_0::Content>().prop_map(Content::from),
2570            any::<testcaserun_queued_0_1_0::Content>().prop_map(Content::from),
2571            any::<testcaserun_queued_0_2_0::Content>().prop_map(Content::from),
2572            any::<testcaserun_skipped_0_2_0::Content>().prop_map(Content::from),
2573            any::<testcaserun_skipped_0_1_0::Content>().prop_map(Content::from),
2574            any::<testcaserun_started_0_3_0::Content>().prop_map(Content::from),
2575            any::<testcaserun_started_0_1_0::Content>().prop_map(Content::from),
2576            any::<testcaserun_started_0_2_0::Content>().prop_map(Content::from),
2577            any::<testoutput_published_0_3_0::Content>().prop_map(Content::from),
2578            any::<testoutput_published_0_1_0::Content>().prop_map(Content::from),
2579            any::<testoutput_published_0_2_0::Content>().prop_map(Content::from),
2580            any::<testsuiterun_finished_0_3_0::Content>().prop_map(Content::from),
2581            any::<testsuiterun_finished_0_1_0::Content>().prop_map(Content::from),
2582            any::<testsuiterun_finished_0_2_0::Content>().prop_map(Content::from),
2583            any::<testsuiterun_queued_0_3_0::Content>().prop_map(Content::from),
2584            any::<testsuiterun_queued_0_1_0::Content>().prop_map(Content::from),
2585            any::<testsuiterun_queued_0_2_0::Content>().prop_map(Content::from),
2586            any::<testsuiterun_started_0_3_0::Content>().prop_map(Content::from),
2587            any::<testsuiterun_started_0_1_0::Content>().prop_map(Content::from),
2588            any::<testsuiterun_started_0_2_0::Content>().prop_map(Content::from),
2589            any::<ticket_closed_0_2_0::Content>().prop_map(Content::from),
2590            any::<ticket_closed_0_1_0::Content>().prop_map(Content::from),
2591            any::<ticket_created_0_2_0::Content>().prop_map(Content::from),
2592            any::<ticket_created_0_1_0::Content>().prop_map(Content::from),
2593            any::<ticket_updated_0_2_0::Content>().prop_map(Content::from),
2594            any::<ticket_updated_0_1_0::Content>().prop_map(Content::from),
2595        ].boxed()
2596    }
2597}
2598
2599// #[cfg(test)]
2600// mod tests {
2601//     use super::*;
2602//
2603//     #[test]
2604//     fn test_true() {
2605//         
2606//         assert_eq!(extract_subject_predicate(APPROVAL_CLOSED_0_1_0), Some(("approval","closed")));
2607//         
2608//         assert_eq!(extract_subject_predicate(APPROVAL_CREATED_0_1_0), Some(("approval","created")));
2609//         
2610//         assert_eq!(extract_subject_predicate(APPROVAL_UPDATED_0_1_0), Some(("approval","updated")));
2611//         
2612//         assert_eq!(extract_subject_predicate(ARTIFACT_DELETED_0_2_0), Some(("artifact","deleted")));
2613//         
2614//         assert_eq!(extract_subject_predicate(ARTIFACT_DELETED_0_1_0), Some(("artifact","deleted")));
2615//         
2616//         assert_eq!(extract_subject_predicate(ARTIFACT_DOWNLOADED_0_2_0), Some(("artifact","downloaded")));
2617//         
2618//         assert_eq!(extract_subject_predicate(ARTIFACT_DOWNLOADED_0_1_0), Some(("artifact","downloaded")));
2619//         
2620//         assert_eq!(extract_subject_predicate(ARTIFACT_PACKAGED_0_3_0), Some(("artifact","packaged")));
2621//         
2622//         assert_eq!(extract_subject_predicate(ARTIFACT_PACKAGED_0_1_1), Some(("artifact","packaged")));
2623//         
2624//         assert_eq!(extract_subject_predicate(ARTIFACT_PACKAGED_0_2_0), Some(("artifact","packaged")));
2625//         
2626//         assert_eq!(extract_subject_predicate(ARTIFACT_PUBLISHED_0_3_0), Some(("artifact","published")));
2627//         
2628//         assert_eq!(extract_subject_predicate(ARTIFACT_PUBLISHED_0_1_1), Some(("artifact","published")));
2629//         
2630//         assert_eq!(extract_subject_predicate(ARTIFACT_PUBLISHED_0_2_0), Some(("artifact","published")));
2631//         
2632//         assert_eq!(extract_subject_predicate(ARTIFACT_SIGNED_0_3_0), Some(("artifact","signed")));
2633//         
2634//         assert_eq!(extract_subject_predicate(ARTIFACT_SIGNED_0_1_0), Some(("artifact","signed")));
2635//         
2636//         assert_eq!(extract_subject_predicate(ARTIFACT_SIGNED_0_2_0), Some(("artifact","signed")));
2637//         
2638//         assert_eq!(extract_subject_predicate(BRANCH_CREATED_0_3_0), Some(("branch","created")));
2639//         
2640//         assert_eq!(extract_subject_predicate(BRANCH_CREATED_0_1_2), Some(("branch","created")));
2641//         
2642//         assert_eq!(extract_subject_predicate(BRANCH_CREATED_0_2_0), Some(("branch","created")));
2643//         
2644//         assert_eq!(extract_subject_predicate(BRANCH_DELETED_0_3_0), Some(("branch","deleted")));
2645//         
2646//         assert_eq!(extract_subject_predicate(BRANCH_DELETED_0_1_2), Some(("branch","deleted")));
2647//         
2648//         assert_eq!(extract_subject_predicate(BRANCH_DELETED_0_2_0), Some(("branch","deleted")));
2649//         
2650//         assert_eq!(extract_subject_predicate(BUILD_FINISHED_0_3_0), Some(("build","finished")));
2651//         
2652//         assert_eq!(extract_subject_predicate(BUILD_FINISHED_0_1_1), Some(("build","finished")));
2653//         
2654//         assert_eq!(extract_subject_predicate(BUILD_FINISHED_0_2_0), Some(("build","finished")));
2655//         
2656//         assert_eq!(extract_subject_predicate(BUILD_QUEUED_0_3_0), Some(("build","queued")));
2657//         
2658//         assert_eq!(extract_subject_predicate(BUILD_QUEUED_0_1_1), Some(("build","queued")));
2659//         
2660//         assert_eq!(extract_subject_predicate(BUILD_QUEUED_0_2_0), Some(("build","queued")));
2661//         
2662//         assert_eq!(extract_subject_predicate(BUILD_STARTED_0_3_0), Some(("build","started")));
2663//         
2664//         assert_eq!(extract_subject_predicate(BUILD_STARTED_0_1_1), Some(("build","started")));
2665//         
2666//         assert_eq!(extract_subject_predicate(BUILD_STARTED_0_2_0), Some(("build","started")));
2667//         
2668//         assert_eq!(extract_subject_predicate(CHANGE_ABANDONED_0_3_0), Some(("change","abandoned")));
2669//         
2670//         assert_eq!(extract_subject_predicate(CHANGE_ABANDONED_0_1_2), Some(("change","abandoned")));
2671//         
2672//         assert_eq!(extract_subject_predicate(CHANGE_ABANDONED_0_2_0), Some(("change","abandoned")));
2673//         
2674//         assert_eq!(extract_subject_predicate(CHANGE_CREATED_0_4_0), Some(("change","created")));
2675//         
2676//         assert_eq!(extract_subject_predicate(CHANGE_CREATED_0_1_2), Some(("change","created")));
2677//         
2678//         assert_eq!(extract_subject_predicate(CHANGE_CREATED_0_3_0), Some(("change","created")));
2679//         
2680//         assert_eq!(extract_subject_predicate(CHANGE_MERGED_0_3_0), Some(("change","merged")));
2681//         
2682//         assert_eq!(extract_subject_predicate(CHANGE_MERGED_0_1_2), Some(("change","merged")));
2683//         
2684//         assert_eq!(extract_subject_predicate(CHANGE_MERGED_0_2_0), Some(("change","merged")));
2685//         
2686//         assert_eq!(extract_subject_predicate(CHANGE_REVIEWED_0_3_0), Some(("change","reviewed")));
2687//         
2688//         assert_eq!(extract_subject_predicate(CHANGE_REVIEWED_0_1_2), Some(("change","reviewed")));
2689//         
2690//         assert_eq!(extract_subject_predicate(CHANGE_REVIEWED_0_2_0), Some(("change","reviewed")));
2691//         
2692//         assert_eq!(extract_subject_predicate(CHANGE_UPDATED_0_3_0), Some(("change","updated")));
2693//         
2694//         assert_eq!(extract_subject_predicate(CHANGE_UPDATED_0_1_2), Some(("change","updated")));
2695//         
2696//         assert_eq!(extract_subject_predicate(CHANGE_UPDATED_0_2_0), Some(("change","updated")));
2697//         
2698//         assert_eq!(extract_subject_predicate(ENVIRONMENT_CREATED_0_3_0), Some(("environment","created")));
2699//         
2700//         assert_eq!(extract_subject_predicate(ENVIRONMENT_CREATED_0_1_1), Some(("environment","created")));
2701//         
2702//         assert_eq!(extract_subject_predicate(ENVIRONMENT_CREATED_0_2_0), Some(("environment","created")));
2703//         
2704//         assert_eq!(extract_subject_predicate(ENVIRONMENT_DELETED_0_3_0), Some(("environment","deleted")));
2705//         
2706//         assert_eq!(extract_subject_predicate(ENVIRONMENT_DELETED_0_1_1), Some(("environment","deleted")));
2707//         
2708//         assert_eq!(extract_subject_predicate(ENVIRONMENT_DELETED_0_2_0), Some(("environment","deleted")));
2709//         
2710//         assert_eq!(extract_subject_predicate(ENVIRONMENT_MODIFIED_0_3_0), Some(("environment","modified")));
2711//         
2712//         assert_eq!(extract_subject_predicate(ENVIRONMENT_MODIFIED_0_1_1), Some(("environment","modified")));
2713//         
2714//         assert_eq!(extract_subject_predicate(ENVIRONMENT_MODIFIED_0_2_0), Some(("environment","modified")));
2715//         
2716//         assert_eq!(extract_subject_predicate(INCIDENT_DETECTED_0_3_0), Some(("incident","detected")));
2717//         
2718//         assert_eq!(extract_subject_predicate(INCIDENT_DETECTED_0_1_0), Some(("incident","detected")));
2719//         
2720//         assert_eq!(extract_subject_predicate(INCIDENT_DETECTED_0_2_0), Some(("incident","detected")));
2721//         
2722//         assert_eq!(extract_subject_predicate(INCIDENT_REPORTED_0_3_0), Some(("incident","reported")));
2723//         
2724//         assert_eq!(extract_subject_predicate(INCIDENT_REPORTED_0_1_0), Some(("incident","reported")));
2725//         
2726//         assert_eq!(extract_subject_predicate(INCIDENT_REPORTED_0_2_0), Some(("incident","reported")));
2727//         
2728//         assert_eq!(extract_subject_predicate(INCIDENT_RESOLVED_0_3_0), Some(("incident","resolved")));
2729//         
2730//         assert_eq!(extract_subject_predicate(INCIDENT_RESOLVED_0_1_0), Some(("incident","resolved")));
2731//         
2732//         assert_eq!(extract_subject_predicate(INCIDENT_RESOLVED_0_2_0), Some(("incident","resolved")));
2733//         
2734//         assert_eq!(extract_subject_predicate(PIPELINERUN_FINISHED_0_3_0), Some(("pipelinerun","finished")));
2735//         
2736//         assert_eq!(extract_subject_predicate(PIPELINERUN_FINISHED_0_1_1), Some(("pipelinerun","finished")));
2737//         
2738//         assert_eq!(extract_subject_predicate(PIPELINERUN_FINISHED_0_2_0), Some(("pipelinerun","finished")));
2739//         
2740//         assert_eq!(extract_subject_predicate(PIPELINERUN_QUEUED_0_3_0), Some(("pipelinerun","queued")));
2741//         
2742//         assert_eq!(extract_subject_predicate(PIPELINERUN_QUEUED_0_1_1), Some(("pipelinerun","queued")));
2743//         
2744//         assert_eq!(extract_subject_predicate(PIPELINERUN_QUEUED_0_2_0), Some(("pipelinerun","queued")));
2745//         
2746//         assert_eq!(extract_subject_predicate(PIPELINERUN_STARTED_0_3_0), Some(("pipelinerun","started")));
2747//         
2748//         assert_eq!(extract_subject_predicate(PIPELINERUN_STARTED_0_1_1), Some(("pipelinerun","started")));
2749//         
2750//         assert_eq!(extract_subject_predicate(PIPELINERUN_STARTED_0_2_0), Some(("pipelinerun","started")));
2751//         
2752//         assert_eq!(extract_subject_predicate(REPOSITORY_CREATED_0_3_0), Some(("repository","created")));
2753//         
2754//         assert_eq!(extract_subject_predicate(REPOSITORY_CREATED_0_1_1), Some(("repository","created")));
2755//         
2756//         assert_eq!(extract_subject_predicate(REPOSITORY_CREATED_0_2_0), Some(("repository","created")));
2757//         
2758//         assert_eq!(extract_subject_predicate(REPOSITORY_DELETED_0_3_0), Some(("repository","deleted")));
2759//         
2760//         assert_eq!(extract_subject_predicate(REPOSITORY_DELETED_0_1_1), Some(("repository","deleted")));
2761//         
2762//         assert_eq!(extract_subject_predicate(REPOSITORY_DELETED_0_2_0), Some(("repository","deleted")));
2763//         
2764//         assert_eq!(extract_subject_predicate(REPOSITORY_MODIFIED_0_3_0), Some(("repository","modified")));
2765//         
2766//         assert_eq!(extract_subject_predicate(REPOSITORY_MODIFIED_0_1_1), Some(("repository","modified")));
2767//         
2768//         assert_eq!(extract_subject_predicate(REPOSITORY_MODIFIED_0_2_0), Some(("repository","modified")));
2769//         
2770//         assert_eq!(extract_subject_predicate(SERVICE_DEPLOYED_0_3_0), Some(("service","deployed")));
2771//         
2772//         assert_eq!(extract_subject_predicate(SERVICE_DEPLOYED_0_1_1), Some(("service","deployed")));
2773//         
2774//         assert_eq!(extract_subject_predicate(SERVICE_DEPLOYED_0_2_0), Some(("service","deployed")));
2775//         
2776//         assert_eq!(extract_subject_predicate(SERVICE_PUBLISHED_0_3_0), Some(("service","published")));
2777//         
2778//         assert_eq!(extract_subject_predicate(SERVICE_PUBLISHED_0_1_1), Some(("service","published")));
2779//         
2780//         assert_eq!(extract_subject_predicate(SERVICE_PUBLISHED_0_2_0), Some(("service","published")));
2781//         
2782//         assert_eq!(extract_subject_predicate(SERVICE_REMOVED_0_3_0), Some(("service","removed")));
2783//         
2784//         assert_eq!(extract_subject_predicate(SERVICE_REMOVED_0_1_1), Some(("service","removed")));
2785//         
2786//         assert_eq!(extract_subject_predicate(SERVICE_REMOVED_0_2_0), Some(("service","removed")));
2787//         
2788//         assert_eq!(extract_subject_predicate(SERVICE_ROLLEDBACK_0_3_0), Some(("service","rolledback")));
2789//         
2790//         assert_eq!(extract_subject_predicate(SERVICE_ROLLEDBACK_0_1_1), Some(("service","rolledback")));
2791//         
2792//         assert_eq!(extract_subject_predicate(SERVICE_ROLLEDBACK_0_2_0), Some(("service","rolledback")));
2793//         
2794//         assert_eq!(extract_subject_predicate(SERVICE_UPGRADED_0_3_0), Some(("service","upgraded")));
2795//         
2796//         assert_eq!(extract_subject_predicate(SERVICE_UPGRADED_0_1_1), Some(("service","upgraded")));
2797//         
2798//         assert_eq!(extract_subject_predicate(SERVICE_UPGRADED_0_2_0), Some(("service","upgraded")));
2799//         
2800//         assert_eq!(extract_subject_predicate(TASKRUN_FINISHED_0_3_0), Some(("taskrun","finished")));
2801//         
2802//         assert_eq!(extract_subject_predicate(TASKRUN_FINISHED_0_1_1), Some(("taskrun","finished")));
2803//         
2804//         assert_eq!(extract_subject_predicate(TASKRUN_FINISHED_0_2_0), Some(("taskrun","finished")));
2805//         
2806//         assert_eq!(extract_subject_predicate(TASKRUN_STARTED_0_3_0), Some(("taskrun","started")));
2807//         
2808//         assert_eq!(extract_subject_predicate(TASKRUN_STARTED_0_1_1), Some(("taskrun","started")));
2809//         
2810//         assert_eq!(extract_subject_predicate(TASKRUN_STARTED_0_2_0), Some(("taskrun","started")));
2811//         
2812//         assert_eq!(extract_subject_predicate(TESTCASERUN_FINISHED_0_3_0), Some(("testcaserun","finished")));
2813//         
2814//         assert_eq!(extract_subject_predicate(TESTCASERUN_FINISHED_0_1_0), Some(("testcaserun","finished")));
2815//         
2816//         assert_eq!(extract_subject_predicate(TESTCASERUN_FINISHED_0_2_0), Some(("testcaserun","finished")));
2817//         
2818//         assert_eq!(extract_subject_predicate(TESTCASERUN_QUEUED_0_3_0), Some(("testcaserun","queued")));
2819//         
2820//         assert_eq!(extract_subject_predicate(TESTCASERUN_QUEUED_0_1_0), Some(("testcaserun","queued")));
2821//         
2822//         assert_eq!(extract_subject_predicate(TESTCASERUN_QUEUED_0_2_0), Some(("testcaserun","queued")));
2823//         
2824//         assert_eq!(extract_subject_predicate(TESTCASERUN_SKIPPED_0_2_0), Some(("testcaserun","skipped")));
2825//         
2826//         assert_eq!(extract_subject_predicate(TESTCASERUN_SKIPPED_0_1_0), Some(("testcaserun","skipped")));
2827//         
2828//         assert_eq!(extract_subject_predicate(TESTCASERUN_STARTED_0_3_0), Some(("testcaserun","started")));
2829//         
2830//         assert_eq!(extract_subject_predicate(TESTCASERUN_STARTED_0_1_0), Some(("testcaserun","started")));
2831//         
2832//         assert_eq!(extract_subject_predicate(TESTCASERUN_STARTED_0_2_0), Some(("testcaserun","started")));
2833//         
2834//         assert_eq!(extract_subject_predicate(TESTOUTPUT_PUBLISHED_0_3_0), Some(("testoutput","published")));
2835//         
2836//         assert_eq!(extract_subject_predicate(TESTOUTPUT_PUBLISHED_0_1_0), Some(("testoutput","published")));
2837//         
2838//         assert_eq!(extract_subject_predicate(TESTOUTPUT_PUBLISHED_0_2_0), Some(("testoutput","published")));
2839//         
2840//         assert_eq!(extract_subject_predicate(TESTSUITERUN_FINISHED_0_3_0), Some(("testsuiterun","finished")));
2841//         
2842//         assert_eq!(extract_subject_predicate(TESTSUITERUN_FINISHED_0_1_0), Some(("testsuiterun","finished")));
2843//         
2844//         assert_eq!(extract_subject_predicate(TESTSUITERUN_FINISHED_0_2_0), Some(("testsuiterun","finished")));
2845//         
2846//         assert_eq!(extract_subject_predicate(TESTSUITERUN_QUEUED_0_3_0), Some(("testsuiterun","queued")));
2847//         
2848//         assert_eq!(extract_subject_predicate(TESTSUITERUN_QUEUED_0_1_0), Some(("testsuiterun","queued")));
2849//         
2850//         assert_eq!(extract_subject_predicate(TESTSUITERUN_QUEUED_0_2_0), Some(("testsuiterun","queued")));
2851//         
2852//         assert_eq!(extract_subject_predicate(TESTSUITERUN_STARTED_0_3_0), Some(("testsuiterun","started")));
2853//         
2854//         assert_eq!(extract_subject_predicate(TESTSUITERUN_STARTED_0_1_0), Some(("testsuiterun","started")));
2855//         
2856//         assert_eq!(extract_subject_predicate(TESTSUITERUN_STARTED_0_2_0), Some(("testsuiterun","started")));
2857//         
2858//         assert_eq!(extract_subject_predicate(TICKET_CLOSED_0_2_0), Some(("ticket","closed")));
2859//         
2860//         assert_eq!(extract_subject_predicate(TICKET_CLOSED_0_1_0), Some(("ticket","closed")));
2861//         
2862//         assert_eq!(extract_subject_predicate(TICKET_CREATED_0_2_0), Some(("ticket","created")));
2863//         
2864//         assert_eq!(extract_subject_predicate(TICKET_CREATED_0_1_0), Some(("ticket","created")));
2865//         
2866//         assert_eq!(extract_subject_predicate(TICKET_UPDATED_0_2_0), Some(("ticket","updated")));
2867//         
2868//         assert_eq!(extract_subject_predicate(TICKET_UPDATED_0_1_0), Some(("ticket","updated")));
2869//         
2870//     }
2871// }