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        if ty.chars().filter(|&c| c == '.').count() != 6 {
654              return Err(serde_json::Error::custom(format_args!(
655                  "invalid context.type format `{}`, expected '{{tld}}.{{domain}}.{{subject}}.{{predicate}}.{{version_major}}.{{version_minor}}.{{version_patch}}(-{{version_modifier}})?'",
656                  ty,
657              )))
658        }
659        match ty {
660            APPROVAL_CLOSED_0_1_0 => {
661                let variant: approval_closed_0_1_0::Content = serde_json::from_value(json)?;
662                Ok(variant.into())
663            },
664            APPROVAL_CREATED_0_1_0 => {
665                let variant: approval_created_0_1_0::Content = serde_json::from_value(json)?;
666                Ok(variant.into())
667            },
668            APPROVAL_UPDATED_0_1_0 => {
669                let variant: approval_updated_0_1_0::Content = serde_json::from_value(json)?;
670                Ok(variant.into())
671            },
672            ARTIFACT_DELETED_0_2_0 => {
673                let variant: artifact_deleted_0_2_0::Content = serde_json::from_value(json)?;
674                Ok(variant.into())
675            },
676            ARTIFACT_DELETED_0_1_0 => {
677                let variant: artifact_deleted_0_1_0::Content = serde_json::from_value(json)?;
678                Ok(variant.into())
679            },
680            ARTIFACT_DOWNLOADED_0_2_0 => {
681                let variant: artifact_downloaded_0_2_0::Content = serde_json::from_value(json)?;
682                Ok(variant.into())
683            },
684            ARTIFACT_DOWNLOADED_0_1_0 => {
685                let variant: artifact_downloaded_0_1_0::Content = serde_json::from_value(json)?;
686                Ok(variant.into())
687            },
688            ARTIFACT_PACKAGED_0_3_0 => {
689                let variant: artifact_packaged_0_3_0::Content = serde_json::from_value(json)?;
690                Ok(variant.into())
691            },
692            ARTIFACT_PACKAGED_0_1_1 => {
693                let variant: artifact_packaged_0_1_1::Content = serde_json::from_value(json)?;
694                Ok(variant.into())
695            },
696            ARTIFACT_PACKAGED_0_2_0 => {
697                let variant: artifact_packaged_0_2_0::Content = serde_json::from_value(json)?;
698                Ok(variant.into())
699            },
700            ARTIFACT_PUBLISHED_0_3_0 => {
701                let variant: artifact_published_0_3_0::Content = serde_json::from_value(json)?;
702                Ok(variant.into())
703            },
704            ARTIFACT_PUBLISHED_0_1_1 => {
705                let variant: artifact_published_0_1_1::Content = serde_json::from_value(json)?;
706                Ok(variant.into())
707            },
708            ARTIFACT_PUBLISHED_0_2_0 => {
709                let variant: artifact_published_0_2_0::Content = serde_json::from_value(json)?;
710                Ok(variant.into())
711            },
712            ARTIFACT_SIGNED_0_3_0 => {
713                let variant: artifact_signed_0_3_0::Content = serde_json::from_value(json)?;
714                Ok(variant.into())
715            },
716            ARTIFACT_SIGNED_0_1_0 => {
717                let variant: artifact_signed_0_1_0::Content = serde_json::from_value(json)?;
718                Ok(variant.into())
719            },
720            ARTIFACT_SIGNED_0_2_0 => {
721                let variant: artifact_signed_0_2_0::Content = serde_json::from_value(json)?;
722                Ok(variant.into())
723            },
724            BRANCH_CREATED_0_3_0 => {
725                let variant: branch_created_0_3_0::Content = serde_json::from_value(json)?;
726                Ok(variant.into())
727            },
728            BRANCH_CREATED_0_1_2 => {
729                let variant: branch_created_0_1_2::Content = serde_json::from_value(json)?;
730                Ok(variant.into())
731            },
732            BRANCH_CREATED_0_2_0 => {
733                let variant: branch_created_0_2_0::Content = serde_json::from_value(json)?;
734                Ok(variant.into())
735            },
736            BRANCH_DELETED_0_3_0 => {
737                let variant: branch_deleted_0_3_0::Content = serde_json::from_value(json)?;
738                Ok(variant.into())
739            },
740            BRANCH_DELETED_0_1_2 => {
741                let variant: branch_deleted_0_1_2::Content = serde_json::from_value(json)?;
742                Ok(variant.into())
743            },
744            BRANCH_DELETED_0_2_0 => {
745                let variant: branch_deleted_0_2_0::Content = serde_json::from_value(json)?;
746                Ok(variant.into())
747            },
748            BUILD_FINISHED_0_3_0 => {
749                let variant: build_finished_0_3_0::Content = serde_json::from_value(json)?;
750                Ok(variant.into())
751            },
752            BUILD_FINISHED_0_1_1 => {
753                let variant: build_finished_0_1_1::Content = serde_json::from_value(json)?;
754                Ok(variant.into())
755            },
756            BUILD_FINISHED_0_2_0 => {
757                let variant: build_finished_0_2_0::Content = serde_json::from_value(json)?;
758                Ok(variant.into())
759            },
760            BUILD_QUEUED_0_3_0 => {
761                let variant: build_queued_0_3_0::Content = serde_json::from_value(json)?;
762                Ok(variant.into())
763            },
764            BUILD_QUEUED_0_1_1 => {
765                let variant: build_queued_0_1_1::Content = serde_json::from_value(json)?;
766                Ok(variant.into())
767            },
768            BUILD_QUEUED_0_2_0 => {
769                let variant: build_queued_0_2_0::Content = serde_json::from_value(json)?;
770                Ok(variant.into())
771            },
772            BUILD_STARTED_0_3_0 => {
773                let variant: build_started_0_3_0::Content = serde_json::from_value(json)?;
774                Ok(variant.into())
775            },
776            BUILD_STARTED_0_1_1 => {
777                let variant: build_started_0_1_1::Content = serde_json::from_value(json)?;
778                Ok(variant.into())
779            },
780            BUILD_STARTED_0_2_0 => {
781                let variant: build_started_0_2_0::Content = serde_json::from_value(json)?;
782                Ok(variant.into())
783            },
784            CHANGE_ABANDONED_0_3_0 => {
785                let variant: change_abandoned_0_3_0::Content = serde_json::from_value(json)?;
786                Ok(variant.into())
787            },
788            CHANGE_ABANDONED_0_1_2 => {
789                let variant: change_abandoned_0_1_2::Content = serde_json::from_value(json)?;
790                Ok(variant.into())
791            },
792            CHANGE_ABANDONED_0_2_0 => {
793                let variant: change_abandoned_0_2_0::Content = serde_json::from_value(json)?;
794                Ok(variant.into())
795            },
796            CHANGE_CREATED_0_4_0 => {
797                let variant: change_created_0_4_0::Content = serde_json::from_value(json)?;
798                Ok(variant.into())
799            },
800            CHANGE_CREATED_0_1_2 => {
801                let variant: change_created_0_1_2::Content = serde_json::from_value(json)?;
802                Ok(variant.into())
803            },
804            CHANGE_CREATED_0_3_0 => {
805                let variant: change_created_0_3_0::Content = serde_json::from_value(json)?;
806                Ok(variant.into())
807            },
808            CHANGE_MERGED_0_3_0 => {
809                let variant: change_merged_0_3_0::Content = serde_json::from_value(json)?;
810                Ok(variant.into())
811            },
812            CHANGE_MERGED_0_1_2 => {
813                let variant: change_merged_0_1_2::Content = serde_json::from_value(json)?;
814                Ok(variant.into())
815            },
816            CHANGE_MERGED_0_2_0 => {
817                let variant: change_merged_0_2_0::Content = serde_json::from_value(json)?;
818                Ok(variant.into())
819            },
820            CHANGE_REVIEWED_0_3_0 => {
821                let variant: change_reviewed_0_3_0::Content = serde_json::from_value(json)?;
822                Ok(variant.into())
823            },
824            CHANGE_REVIEWED_0_1_2 => {
825                let variant: change_reviewed_0_1_2::Content = serde_json::from_value(json)?;
826                Ok(variant.into())
827            },
828            CHANGE_REVIEWED_0_2_0 => {
829                let variant: change_reviewed_0_2_0::Content = serde_json::from_value(json)?;
830                Ok(variant.into())
831            },
832            CHANGE_UPDATED_0_3_0 => {
833                let variant: change_updated_0_3_0::Content = serde_json::from_value(json)?;
834                Ok(variant.into())
835            },
836            CHANGE_UPDATED_0_1_2 => {
837                let variant: change_updated_0_1_2::Content = serde_json::from_value(json)?;
838                Ok(variant.into())
839            },
840            CHANGE_UPDATED_0_2_0 => {
841                let variant: change_updated_0_2_0::Content = serde_json::from_value(json)?;
842                Ok(variant.into())
843            },
844            ENVIRONMENT_CREATED_0_3_0 => {
845                let variant: environment_created_0_3_0::Content = serde_json::from_value(json)?;
846                Ok(variant.into())
847            },
848            ENVIRONMENT_CREATED_0_1_1 => {
849                let variant: environment_created_0_1_1::Content = serde_json::from_value(json)?;
850                Ok(variant.into())
851            },
852            ENVIRONMENT_CREATED_0_2_0 => {
853                let variant: environment_created_0_2_0::Content = serde_json::from_value(json)?;
854                Ok(variant.into())
855            },
856            ENVIRONMENT_DELETED_0_3_0 => {
857                let variant: environment_deleted_0_3_0::Content = serde_json::from_value(json)?;
858                Ok(variant.into())
859            },
860            ENVIRONMENT_DELETED_0_1_1 => {
861                let variant: environment_deleted_0_1_1::Content = serde_json::from_value(json)?;
862                Ok(variant.into())
863            },
864            ENVIRONMENT_DELETED_0_2_0 => {
865                let variant: environment_deleted_0_2_0::Content = serde_json::from_value(json)?;
866                Ok(variant.into())
867            },
868            ENVIRONMENT_MODIFIED_0_3_0 => {
869                let variant: environment_modified_0_3_0::Content = serde_json::from_value(json)?;
870                Ok(variant.into())
871            },
872            ENVIRONMENT_MODIFIED_0_1_1 => {
873                let variant: environment_modified_0_1_1::Content = serde_json::from_value(json)?;
874                Ok(variant.into())
875            },
876            ENVIRONMENT_MODIFIED_0_2_0 => {
877                let variant: environment_modified_0_2_0::Content = serde_json::from_value(json)?;
878                Ok(variant.into())
879            },
880            INCIDENT_DETECTED_0_3_0 => {
881                let variant: incident_detected_0_3_0::Content = serde_json::from_value(json)?;
882                Ok(variant.into())
883            },
884            INCIDENT_DETECTED_0_1_0 => {
885                let variant: incident_detected_0_1_0::Content = serde_json::from_value(json)?;
886                Ok(variant.into())
887            },
888            INCIDENT_DETECTED_0_2_0 => {
889                let variant: incident_detected_0_2_0::Content = serde_json::from_value(json)?;
890                Ok(variant.into())
891            },
892            INCIDENT_REPORTED_0_3_0 => {
893                let variant: incident_reported_0_3_0::Content = serde_json::from_value(json)?;
894                Ok(variant.into())
895            },
896            INCIDENT_REPORTED_0_1_0 => {
897                let variant: incident_reported_0_1_0::Content = serde_json::from_value(json)?;
898                Ok(variant.into())
899            },
900            INCIDENT_REPORTED_0_2_0 => {
901                let variant: incident_reported_0_2_0::Content = serde_json::from_value(json)?;
902                Ok(variant.into())
903            },
904            INCIDENT_RESOLVED_0_3_0 => {
905                let variant: incident_resolved_0_3_0::Content = serde_json::from_value(json)?;
906                Ok(variant.into())
907            },
908            INCIDENT_RESOLVED_0_1_0 => {
909                let variant: incident_resolved_0_1_0::Content = serde_json::from_value(json)?;
910                Ok(variant.into())
911            },
912            INCIDENT_RESOLVED_0_2_0 => {
913                let variant: incident_resolved_0_2_0::Content = serde_json::from_value(json)?;
914                Ok(variant.into())
915            },
916            PIPELINERUN_FINISHED_0_3_0 => {
917                let variant: pipelinerun_finished_0_3_0::Content = serde_json::from_value(json)?;
918                Ok(variant.into())
919            },
920            PIPELINERUN_FINISHED_0_1_1 => {
921                let variant: pipelinerun_finished_0_1_1::Content = serde_json::from_value(json)?;
922                Ok(variant.into())
923            },
924            PIPELINERUN_FINISHED_0_2_0 => {
925                let variant: pipelinerun_finished_0_2_0::Content = serde_json::from_value(json)?;
926                Ok(variant.into())
927            },
928            PIPELINERUN_QUEUED_0_3_0 => {
929                let variant: pipelinerun_queued_0_3_0::Content = serde_json::from_value(json)?;
930                Ok(variant.into())
931            },
932            PIPELINERUN_QUEUED_0_1_1 => {
933                let variant: pipelinerun_queued_0_1_1::Content = serde_json::from_value(json)?;
934                Ok(variant.into())
935            },
936            PIPELINERUN_QUEUED_0_2_0 => {
937                let variant: pipelinerun_queued_0_2_0::Content = serde_json::from_value(json)?;
938                Ok(variant.into())
939            },
940            PIPELINERUN_STARTED_0_3_0 => {
941                let variant: pipelinerun_started_0_3_0::Content = serde_json::from_value(json)?;
942                Ok(variant.into())
943            },
944            PIPELINERUN_STARTED_0_1_1 => {
945                let variant: pipelinerun_started_0_1_1::Content = serde_json::from_value(json)?;
946                Ok(variant.into())
947            },
948            PIPELINERUN_STARTED_0_2_0 => {
949                let variant: pipelinerun_started_0_2_0::Content = serde_json::from_value(json)?;
950                Ok(variant.into())
951            },
952            REPOSITORY_CREATED_0_3_0 => {
953                let variant: repository_created_0_3_0::Content = serde_json::from_value(json)?;
954                Ok(variant.into())
955            },
956            REPOSITORY_CREATED_0_1_1 => {
957                let variant: repository_created_0_1_1::Content = serde_json::from_value(json)?;
958                Ok(variant.into())
959            },
960            REPOSITORY_CREATED_0_2_0 => {
961                let variant: repository_created_0_2_0::Content = serde_json::from_value(json)?;
962                Ok(variant.into())
963            },
964            REPOSITORY_DELETED_0_3_0 => {
965                let variant: repository_deleted_0_3_0::Content = serde_json::from_value(json)?;
966                Ok(variant.into())
967            },
968            REPOSITORY_DELETED_0_1_1 => {
969                let variant: repository_deleted_0_1_1::Content = serde_json::from_value(json)?;
970                Ok(variant.into())
971            },
972            REPOSITORY_DELETED_0_2_0 => {
973                let variant: repository_deleted_0_2_0::Content = serde_json::from_value(json)?;
974                Ok(variant.into())
975            },
976            REPOSITORY_MODIFIED_0_3_0 => {
977                let variant: repository_modified_0_3_0::Content = serde_json::from_value(json)?;
978                Ok(variant.into())
979            },
980            REPOSITORY_MODIFIED_0_1_1 => {
981                let variant: repository_modified_0_1_1::Content = serde_json::from_value(json)?;
982                Ok(variant.into())
983            },
984            REPOSITORY_MODIFIED_0_2_0 => {
985                let variant: repository_modified_0_2_0::Content = serde_json::from_value(json)?;
986                Ok(variant.into())
987            },
988            SERVICE_DEPLOYED_0_3_0 => {
989                let variant: service_deployed_0_3_0::Content = serde_json::from_value(json)?;
990                Ok(variant.into())
991            },
992            SERVICE_DEPLOYED_0_1_1 => {
993                let variant: service_deployed_0_1_1::Content = serde_json::from_value(json)?;
994                Ok(variant.into())
995            },
996            SERVICE_DEPLOYED_0_2_0 => {
997                let variant: service_deployed_0_2_0::Content = serde_json::from_value(json)?;
998                Ok(variant.into())
999            },
1000            SERVICE_PUBLISHED_0_3_0 => {
1001                let variant: service_published_0_3_0::Content = serde_json::from_value(json)?;
1002                Ok(variant.into())
1003            },
1004            SERVICE_PUBLISHED_0_1_1 => {
1005                let variant: service_published_0_1_1::Content = serde_json::from_value(json)?;
1006                Ok(variant.into())
1007            },
1008            SERVICE_PUBLISHED_0_2_0 => {
1009                let variant: service_published_0_2_0::Content = serde_json::from_value(json)?;
1010                Ok(variant.into())
1011            },
1012            SERVICE_REMOVED_0_3_0 => {
1013                let variant: service_removed_0_3_0::Content = serde_json::from_value(json)?;
1014                Ok(variant.into())
1015            },
1016            SERVICE_REMOVED_0_1_1 => {
1017                let variant: service_removed_0_1_1::Content = serde_json::from_value(json)?;
1018                Ok(variant.into())
1019            },
1020            SERVICE_REMOVED_0_2_0 => {
1021                let variant: service_removed_0_2_0::Content = serde_json::from_value(json)?;
1022                Ok(variant.into())
1023            },
1024            SERVICE_ROLLEDBACK_0_3_0 => {
1025                let variant: service_rolledback_0_3_0::Content = serde_json::from_value(json)?;
1026                Ok(variant.into())
1027            },
1028            SERVICE_ROLLEDBACK_0_1_1 => {
1029                let variant: service_rolledback_0_1_1::Content = serde_json::from_value(json)?;
1030                Ok(variant.into())
1031            },
1032            SERVICE_ROLLEDBACK_0_2_0 => {
1033                let variant: service_rolledback_0_2_0::Content = serde_json::from_value(json)?;
1034                Ok(variant.into())
1035            },
1036            SERVICE_UPGRADED_0_3_0 => {
1037                let variant: service_upgraded_0_3_0::Content = serde_json::from_value(json)?;
1038                Ok(variant.into())
1039            },
1040            SERVICE_UPGRADED_0_1_1 => {
1041                let variant: service_upgraded_0_1_1::Content = serde_json::from_value(json)?;
1042                Ok(variant.into())
1043            },
1044            SERVICE_UPGRADED_0_2_0 => {
1045                let variant: service_upgraded_0_2_0::Content = serde_json::from_value(json)?;
1046                Ok(variant.into())
1047            },
1048            TASKRUN_FINISHED_0_3_0 => {
1049                let variant: taskrun_finished_0_3_0::Content = serde_json::from_value(json)?;
1050                Ok(variant.into())
1051            },
1052            TASKRUN_FINISHED_0_1_1 => {
1053                let variant: taskrun_finished_0_1_1::Content = serde_json::from_value(json)?;
1054                Ok(variant.into())
1055            },
1056            TASKRUN_FINISHED_0_2_0 => {
1057                let variant: taskrun_finished_0_2_0::Content = serde_json::from_value(json)?;
1058                Ok(variant.into())
1059            },
1060            TASKRUN_STARTED_0_3_0 => {
1061                let variant: taskrun_started_0_3_0::Content = serde_json::from_value(json)?;
1062                Ok(variant.into())
1063            },
1064            TASKRUN_STARTED_0_1_1 => {
1065                let variant: taskrun_started_0_1_1::Content = serde_json::from_value(json)?;
1066                Ok(variant.into())
1067            },
1068            TASKRUN_STARTED_0_2_0 => {
1069                let variant: taskrun_started_0_2_0::Content = serde_json::from_value(json)?;
1070                Ok(variant.into())
1071            },
1072            TESTCASERUN_FINISHED_0_3_0 => {
1073                let variant: testcaserun_finished_0_3_0::Content = serde_json::from_value(json)?;
1074                Ok(variant.into())
1075            },
1076            TESTCASERUN_FINISHED_0_1_0 => {
1077                let variant: testcaserun_finished_0_1_0::Content = serde_json::from_value(json)?;
1078                Ok(variant.into())
1079            },
1080            TESTCASERUN_FINISHED_0_2_0 => {
1081                let variant: testcaserun_finished_0_2_0::Content = serde_json::from_value(json)?;
1082                Ok(variant.into())
1083            },
1084            TESTCASERUN_QUEUED_0_3_0 => {
1085                let variant: testcaserun_queued_0_3_0::Content = serde_json::from_value(json)?;
1086                Ok(variant.into())
1087            },
1088            TESTCASERUN_QUEUED_0_1_0 => {
1089                let variant: testcaserun_queued_0_1_0::Content = serde_json::from_value(json)?;
1090                Ok(variant.into())
1091            },
1092            TESTCASERUN_QUEUED_0_2_0 => {
1093                let variant: testcaserun_queued_0_2_0::Content = serde_json::from_value(json)?;
1094                Ok(variant.into())
1095            },
1096            TESTCASERUN_SKIPPED_0_2_0 => {
1097                let variant: testcaserun_skipped_0_2_0::Content = serde_json::from_value(json)?;
1098                Ok(variant.into())
1099            },
1100            TESTCASERUN_SKIPPED_0_1_0 => {
1101                let variant: testcaserun_skipped_0_1_0::Content = serde_json::from_value(json)?;
1102                Ok(variant.into())
1103            },
1104            TESTCASERUN_STARTED_0_3_0 => {
1105                let variant: testcaserun_started_0_3_0::Content = serde_json::from_value(json)?;
1106                Ok(variant.into())
1107            },
1108            TESTCASERUN_STARTED_0_1_0 => {
1109                let variant: testcaserun_started_0_1_0::Content = serde_json::from_value(json)?;
1110                Ok(variant.into())
1111            },
1112            TESTCASERUN_STARTED_0_2_0 => {
1113                let variant: testcaserun_started_0_2_0::Content = serde_json::from_value(json)?;
1114                Ok(variant.into())
1115            },
1116            TESTOUTPUT_PUBLISHED_0_3_0 => {
1117                let variant: testoutput_published_0_3_0::Content = serde_json::from_value(json)?;
1118                Ok(variant.into())
1119            },
1120            TESTOUTPUT_PUBLISHED_0_1_0 => {
1121                let variant: testoutput_published_0_1_0::Content = serde_json::from_value(json)?;
1122                Ok(variant.into())
1123            },
1124            TESTOUTPUT_PUBLISHED_0_2_0 => {
1125                let variant: testoutput_published_0_2_0::Content = serde_json::from_value(json)?;
1126                Ok(variant.into())
1127            },
1128            TESTSUITERUN_FINISHED_0_3_0 => {
1129                let variant: testsuiterun_finished_0_3_0::Content = serde_json::from_value(json)?;
1130                Ok(variant.into())
1131            },
1132            TESTSUITERUN_FINISHED_0_1_0 => {
1133                let variant: testsuiterun_finished_0_1_0::Content = serde_json::from_value(json)?;
1134                Ok(variant.into())
1135            },
1136            TESTSUITERUN_FINISHED_0_2_0 => {
1137                let variant: testsuiterun_finished_0_2_0::Content = serde_json::from_value(json)?;
1138                Ok(variant.into())
1139            },
1140            TESTSUITERUN_QUEUED_0_3_0 => {
1141                let variant: testsuiterun_queued_0_3_0::Content = serde_json::from_value(json)?;
1142                Ok(variant.into())
1143            },
1144            TESTSUITERUN_QUEUED_0_1_0 => {
1145                let variant: testsuiterun_queued_0_1_0::Content = serde_json::from_value(json)?;
1146                Ok(variant.into())
1147            },
1148            TESTSUITERUN_QUEUED_0_2_0 => {
1149                let variant: testsuiterun_queued_0_2_0::Content = serde_json::from_value(json)?;
1150                Ok(variant.into())
1151            },
1152            TESTSUITERUN_STARTED_0_3_0 => {
1153                let variant: testsuiterun_started_0_3_0::Content = serde_json::from_value(json)?;
1154                Ok(variant.into())
1155            },
1156            TESTSUITERUN_STARTED_0_1_0 => {
1157                let variant: testsuiterun_started_0_1_0::Content = serde_json::from_value(json)?;
1158                Ok(variant.into())
1159            },
1160            TESTSUITERUN_STARTED_0_2_0 => {
1161                let variant: testsuiterun_started_0_2_0::Content = serde_json::from_value(json)?;
1162                Ok(variant.into())
1163            },
1164            TICKET_CLOSED_0_2_0 => {
1165                let variant: ticket_closed_0_2_0::Content = serde_json::from_value(json)?;
1166                Ok(variant.into())
1167            },
1168            TICKET_CLOSED_0_1_0 => {
1169                let variant: ticket_closed_0_1_0::Content = serde_json::from_value(json)?;
1170                Ok(variant.into())
1171            },
1172            TICKET_CREATED_0_2_0 => {
1173                let variant: ticket_created_0_2_0::Content = serde_json::from_value(json)?;
1174                Ok(variant.into())
1175            },
1176            TICKET_CREATED_0_1_0 => {
1177                let variant: ticket_created_0_1_0::Content = serde_json::from_value(json)?;
1178                Ok(variant.into())
1179            },
1180            TICKET_UPDATED_0_2_0 => {
1181                let variant: ticket_updated_0_2_0::Content = serde_json::from_value(json)?;
1182                Ok(variant.into())
1183            },
1184            TICKET_UPDATED_0_1_0 => {
1185                let variant: ticket_updated_0_1_0::Content = serde_json::from_value(json)?;
1186                Ok(variant.into())
1187            },
1188            variant => if variant.starts_with("dev.cdevents.") {
1189              Err(serde_json::Error::custom(format_args!(
1190                  "unknown variant `{}`, expected 'dev.cdevents.{{subject}}.{{predicate}}.{{version}}'",
1191                  variant,
1192              )))
1193            } else {
1194                Ok(Self::Custom{ ty: ty.to_string(), json })
1195            },
1196        }
1197    }
1198
1199    pub fn ty(&self) -> &str {
1200        match self {
1201            Self::ApprovalClosed010(_) => APPROVAL_CLOSED_0_1_0,
1202            Self::ApprovalCreated010(_) => APPROVAL_CREATED_0_1_0,
1203            Self::ApprovalUpdated010(_) => APPROVAL_UPDATED_0_1_0,
1204            Self::ArtifactDeleted020(_) => ARTIFACT_DELETED_0_2_0,
1205            Self::ArtifactDeleted010(_) => ARTIFACT_DELETED_0_1_0,
1206            Self::ArtifactDownloaded020(_) => ARTIFACT_DOWNLOADED_0_2_0,
1207            Self::ArtifactDownloaded010(_) => ARTIFACT_DOWNLOADED_0_1_0,
1208            Self::ArtifactPackaged030(_) => ARTIFACT_PACKAGED_0_3_0,
1209            Self::ArtifactPackaged011(_) => ARTIFACT_PACKAGED_0_1_1,
1210            Self::ArtifactPackaged020(_) => ARTIFACT_PACKAGED_0_2_0,
1211            Self::ArtifactPublished030(_) => ARTIFACT_PUBLISHED_0_3_0,
1212            Self::ArtifactPublished011(_) => ARTIFACT_PUBLISHED_0_1_1,
1213            Self::ArtifactPublished020(_) => ARTIFACT_PUBLISHED_0_2_0,
1214            Self::ArtifactSigned030(_) => ARTIFACT_SIGNED_0_3_0,
1215            Self::ArtifactSigned010(_) => ARTIFACT_SIGNED_0_1_0,
1216            Self::ArtifactSigned020(_) => ARTIFACT_SIGNED_0_2_0,
1217            Self::BranchCreated030(_) => BRANCH_CREATED_0_3_0,
1218            Self::BranchCreated012(_) => BRANCH_CREATED_0_1_2,
1219            Self::BranchCreated020(_) => BRANCH_CREATED_0_2_0,
1220            Self::BranchDeleted030(_) => BRANCH_DELETED_0_3_0,
1221            Self::BranchDeleted012(_) => BRANCH_DELETED_0_1_2,
1222            Self::BranchDeleted020(_) => BRANCH_DELETED_0_2_0,
1223            Self::BuildFinished030(_) => BUILD_FINISHED_0_3_0,
1224            Self::BuildFinished011(_) => BUILD_FINISHED_0_1_1,
1225            Self::BuildFinished020(_) => BUILD_FINISHED_0_2_0,
1226            Self::BuildQueued030(_) => BUILD_QUEUED_0_3_0,
1227            Self::BuildQueued011(_) => BUILD_QUEUED_0_1_1,
1228            Self::BuildQueued020(_) => BUILD_QUEUED_0_2_0,
1229            Self::BuildStarted030(_) => BUILD_STARTED_0_3_0,
1230            Self::BuildStarted011(_) => BUILD_STARTED_0_1_1,
1231            Self::BuildStarted020(_) => BUILD_STARTED_0_2_0,
1232            Self::ChangeAbandoned030(_) => CHANGE_ABANDONED_0_3_0,
1233            Self::ChangeAbandoned012(_) => CHANGE_ABANDONED_0_1_2,
1234            Self::ChangeAbandoned020(_) => CHANGE_ABANDONED_0_2_0,
1235            Self::ChangeCreated040(_) => CHANGE_CREATED_0_4_0,
1236            Self::ChangeCreated012(_) => CHANGE_CREATED_0_1_2,
1237            Self::ChangeCreated030(_) => CHANGE_CREATED_0_3_0,
1238            Self::ChangeMerged030(_) => CHANGE_MERGED_0_3_0,
1239            Self::ChangeMerged012(_) => CHANGE_MERGED_0_1_2,
1240            Self::ChangeMerged020(_) => CHANGE_MERGED_0_2_0,
1241            Self::ChangeReviewed030(_) => CHANGE_REVIEWED_0_3_0,
1242            Self::ChangeReviewed012(_) => CHANGE_REVIEWED_0_1_2,
1243            Self::ChangeReviewed020(_) => CHANGE_REVIEWED_0_2_0,
1244            Self::ChangeUpdated030(_) => CHANGE_UPDATED_0_3_0,
1245            Self::ChangeUpdated012(_) => CHANGE_UPDATED_0_1_2,
1246            Self::ChangeUpdated020(_) => CHANGE_UPDATED_0_2_0,
1247            Self::EnvironmentCreated030(_) => ENVIRONMENT_CREATED_0_3_0,
1248            Self::EnvironmentCreated011(_) => ENVIRONMENT_CREATED_0_1_1,
1249            Self::EnvironmentCreated020(_) => ENVIRONMENT_CREATED_0_2_0,
1250            Self::EnvironmentDeleted030(_) => ENVIRONMENT_DELETED_0_3_0,
1251            Self::EnvironmentDeleted011(_) => ENVIRONMENT_DELETED_0_1_1,
1252            Self::EnvironmentDeleted020(_) => ENVIRONMENT_DELETED_0_2_0,
1253            Self::EnvironmentModified030(_) => ENVIRONMENT_MODIFIED_0_3_0,
1254            Self::EnvironmentModified011(_) => ENVIRONMENT_MODIFIED_0_1_1,
1255            Self::EnvironmentModified020(_) => ENVIRONMENT_MODIFIED_0_2_0,
1256            Self::IncidentDetected030(_) => INCIDENT_DETECTED_0_3_0,
1257            Self::IncidentDetected010(_) => INCIDENT_DETECTED_0_1_0,
1258            Self::IncidentDetected020(_) => INCIDENT_DETECTED_0_2_0,
1259            Self::IncidentReported030(_) => INCIDENT_REPORTED_0_3_0,
1260            Self::IncidentReported010(_) => INCIDENT_REPORTED_0_1_0,
1261            Self::IncidentReported020(_) => INCIDENT_REPORTED_0_2_0,
1262            Self::IncidentResolved030(_) => INCIDENT_RESOLVED_0_3_0,
1263            Self::IncidentResolved010(_) => INCIDENT_RESOLVED_0_1_0,
1264            Self::IncidentResolved020(_) => INCIDENT_RESOLVED_0_2_0,
1265            Self::PipelinerunFinished030(_) => PIPELINERUN_FINISHED_0_3_0,
1266            Self::PipelinerunFinished011(_) => PIPELINERUN_FINISHED_0_1_1,
1267            Self::PipelinerunFinished020(_) => PIPELINERUN_FINISHED_0_2_0,
1268            Self::PipelinerunQueued030(_) => PIPELINERUN_QUEUED_0_3_0,
1269            Self::PipelinerunQueued011(_) => PIPELINERUN_QUEUED_0_1_1,
1270            Self::PipelinerunQueued020(_) => PIPELINERUN_QUEUED_0_2_0,
1271            Self::PipelinerunStarted030(_) => PIPELINERUN_STARTED_0_3_0,
1272            Self::PipelinerunStarted011(_) => PIPELINERUN_STARTED_0_1_1,
1273            Self::PipelinerunStarted020(_) => PIPELINERUN_STARTED_0_2_0,
1274            Self::RepositoryCreated030(_) => REPOSITORY_CREATED_0_3_0,
1275            Self::RepositoryCreated011(_) => REPOSITORY_CREATED_0_1_1,
1276            Self::RepositoryCreated020(_) => REPOSITORY_CREATED_0_2_0,
1277            Self::RepositoryDeleted030(_) => REPOSITORY_DELETED_0_3_0,
1278            Self::RepositoryDeleted011(_) => REPOSITORY_DELETED_0_1_1,
1279            Self::RepositoryDeleted020(_) => REPOSITORY_DELETED_0_2_0,
1280            Self::RepositoryModified030(_) => REPOSITORY_MODIFIED_0_3_0,
1281            Self::RepositoryModified011(_) => REPOSITORY_MODIFIED_0_1_1,
1282            Self::RepositoryModified020(_) => REPOSITORY_MODIFIED_0_2_0,
1283            Self::ServiceDeployed030(_) => SERVICE_DEPLOYED_0_3_0,
1284            Self::ServiceDeployed011(_) => SERVICE_DEPLOYED_0_1_1,
1285            Self::ServiceDeployed020(_) => SERVICE_DEPLOYED_0_2_0,
1286            Self::ServicePublished030(_) => SERVICE_PUBLISHED_0_3_0,
1287            Self::ServicePublished011(_) => SERVICE_PUBLISHED_0_1_1,
1288            Self::ServicePublished020(_) => SERVICE_PUBLISHED_0_2_0,
1289            Self::ServiceRemoved030(_) => SERVICE_REMOVED_0_3_0,
1290            Self::ServiceRemoved011(_) => SERVICE_REMOVED_0_1_1,
1291            Self::ServiceRemoved020(_) => SERVICE_REMOVED_0_2_0,
1292            Self::ServiceRolledback030(_) => SERVICE_ROLLEDBACK_0_3_0,
1293            Self::ServiceRolledback011(_) => SERVICE_ROLLEDBACK_0_1_1,
1294            Self::ServiceRolledback020(_) => SERVICE_ROLLEDBACK_0_2_0,
1295            Self::ServiceUpgraded030(_) => SERVICE_UPGRADED_0_3_0,
1296            Self::ServiceUpgraded011(_) => SERVICE_UPGRADED_0_1_1,
1297            Self::ServiceUpgraded020(_) => SERVICE_UPGRADED_0_2_0,
1298            Self::TaskrunFinished030(_) => TASKRUN_FINISHED_0_3_0,
1299            Self::TaskrunFinished011(_) => TASKRUN_FINISHED_0_1_1,
1300            Self::TaskrunFinished020(_) => TASKRUN_FINISHED_0_2_0,
1301            Self::TaskrunStarted030(_) => TASKRUN_STARTED_0_3_0,
1302            Self::TaskrunStarted011(_) => TASKRUN_STARTED_0_1_1,
1303            Self::TaskrunStarted020(_) => TASKRUN_STARTED_0_2_0,
1304            Self::TestcaserunFinished030(_) => TESTCASERUN_FINISHED_0_3_0,
1305            Self::TestcaserunFinished010(_) => TESTCASERUN_FINISHED_0_1_0,
1306            Self::TestcaserunFinished020(_) => TESTCASERUN_FINISHED_0_2_0,
1307            Self::TestcaserunQueued030(_) => TESTCASERUN_QUEUED_0_3_0,
1308            Self::TestcaserunQueued010(_) => TESTCASERUN_QUEUED_0_1_0,
1309            Self::TestcaserunQueued020(_) => TESTCASERUN_QUEUED_0_2_0,
1310            Self::TestcaserunSkipped020(_) => TESTCASERUN_SKIPPED_0_2_0,
1311            Self::TestcaserunSkipped010(_) => TESTCASERUN_SKIPPED_0_1_0,
1312            Self::TestcaserunStarted030(_) => TESTCASERUN_STARTED_0_3_0,
1313            Self::TestcaserunStarted010(_) => TESTCASERUN_STARTED_0_1_0,
1314            Self::TestcaserunStarted020(_) => TESTCASERUN_STARTED_0_2_0,
1315            Self::TestoutputPublished030(_) => TESTOUTPUT_PUBLISHED_0_3_0,
1316            Self::TestoutputPublished010(_) => TESTOUTPUT_PUBLISHED_0_1_0,
1317            Self::TestoutputPublished020(_) => TESTOUTPUT_PUBLISHED_0_2_0,
1318            Self::TestsuiterunFinished030(_) => TESTSUITERUN_FINISHED_0_3_0,
1319            Self::TestsuiterunFinished010(_) => TESTSUITERUN_FINISHED_0_1_0,
1320            Self::TestsuiterunFinished020(_) => TESTSUITERUN_FINISHED_0_2_0,
1321            Self::TestsuiterunQueued030(_) => TESTSUITERUN_QUEUED_0_3_0,
1322            Self::TestsuiterunQueued010(_) => TESTSUITERUN_QUEUED_0_1_0,
1323            Self::TestsuiterunQueued020(_) => TESTSUITERUN_QUEUED_0_2_0,
1324            Self::TestsuiterunStarted030(_) => TESTSUITERUN_STARTED_0_3_0,
1325            Self::TestsuiterunStarted010(_) => TESTSUITERUN_STARTED_0_1_0,
1326            Self::TestsuiterunStarted020(_) => TESTSUITERUN_STARTED_0_2_0,
1327            Self::TicketClosed020(_) => TICKET_CLOSED_0_2_0,
1328            Self::TicketClosed010(_) => TICKET_CLOSED_0_1_0,
1329            Self::TicketCreated020(_) => TICKET_CREATED_0_2_0,
1330            Self::TicketCreated010(_) => TICKET_CREATED_0_1_0,
1331            Self::TicketUpdated020(_) => TICKET_UPDATED_0_2_0,
1332            Self::TicketUpdated010(_) => TICKET_UPDATED_0_1_0,
1333            Self::Custom{ty, ..} => ty,
1334        }
1335    }
1336
1337    pub fn subject(&self) -> &str {
1338        match self {
1339            Self::ApprovalClosed010(_) => "",
1340            Self::ApprovalCreated010(_) => "",
1341            Self::ApprovalUpdated010(_) => "",
1342            Self::ArtifactDeleted020(_) => "",
1343            Self::ArtifactDeleted010(_) => "artifact",
1344            Self::ArtifactDownloaded020(_) => "",
1345            Self::ArtifactDownloaded010(_) => "artifact",
1346            Self::ArtifactPackaged030(_) => "",
1347            Self::ArtifactPackaged011(_) => "artifact",
1348            Self::ArtifactPackaged020(_) => "artifact",
1349            Self::ArtifactPublished030(_) => "",
1350            Self::ArtifactPublished011(_) => "artifact",
1351            Self::ArtifactPublished020(_) => "artifact",
1352            Self::ArtifactSigned030(_) => "",
1353            Self::ArtifactSigned010(_) => "artifact",
1354            Self::ArtifactSigned020(_) => "artifact",
1355            Self::BranchCreated030(_) => "",
1356            Self::BranchCreated012(_) => "branch",
1357            Self::BranchCreated020(_) => "branch",
1358            Self::BranchDeleted030(_) => "",
1359            Self::BranchDeleted012(_) => "branch",
1360            Self::BranchDeleted020(_) => "branch",
1361            Self::BuildFinished030(_) => "",
1362            Self::BuildFinished011(_) => "build",
1363            Self::BuildFinished020(_) => "build",
1364            Self::BuildQueued030(_) => "",
1365            Self::BuildQueued011(_) => "build",
1366            Self::BuildQueued020(_) => "build",
1367            Self::BuildStarted030(_) => "",
1368            Self::BuildStarted011(_) => "build",
1369            Self::BuildStarted020(_) => "build",
1370            Self::ChangeAbandoned030(_) => "",
1371            Self::ChangeAbandoned012(_) => "change",
1372            Self::ChangeAbandoned020(_) => "change",
1373            Self::ChangeCreated040(_) => "",
1374            Self::ChangeCreated012(_) => "change",
1375            Self::ChangeCreated030(_) => "change",
1376            Self::ChangeMerged030(_) => "",
1377            Self::ChangeMerged012(_) => "change",
1378            Self::ChangeMerged020(_) => "change",
1379            Self::ChangeReviewed030(_) => "",
1380            Self::ChangeReviewed012(_) => "change",
1381            Self::ChangeReviewed020(_) => "change",
1382            Self::ChangeUpdated030(_) => "",
1383            Self::ChangeUpdated012(_) => "change",
1384            Self::ChangeUpdated020(_) => "change",
1385            Self::EnvironmentCreated030(_) => "",
1386            Self::EnvironmentCreated011(_) => "environment",
1387            Self::EnvironmentCreated020(_) => "environment",
1388            Self::EnvironmentDeleted030(_) => "",
1389            Self::EnvironmentDeleted011(_) => "environment",
1390            Self::EnvironmentDeleted020(_) => "environment",
1391            Self::EnvironmentModified030(_) => "",
1392            Self::EnvironmentModified011(_) => "environment",
1393            Self::EnvironmentModified020(_) => "environment",
1394            Self::IncidentDetected030(_) => "",
1395            Self::IncidentDetected010(_) => "incident",
1396            Self::IncidentDetected020(_) => "incident",
1397            Self::IncidentReported030(_) => "",
1398            Self::IncidentReported010(_) => "incident",
1399            Self::IncidentReported020(_) => "incident",
1400            Self::IncidentResolved030(_) => "",
1401            Self::IncidentResolved010(_) => "incident",
1402            Self::IncidentResolved020(_) => "incident",
1403            Self::PipelinerunFinished030(_) => "",
1404            Self::PipelinerunFinished011(_) => "pipelineRun",
1405            Self::PipelinerunFinished020(_) => "pipelineRun",
1406            Self::PipelinerunQueued030(_) => "",
1407            Self::PipelinerunQueued011(_) => "pipelineRun",
1408            Self::PipelinerunQueued020(_) => "pipelineRun",
1409            Self::PipelinerunStarted030(_) => "",
1410            Self::PipelinerunStarted011(_) => "pipelineRun",
1411            Self::PipelinerunStarted020(_) => "pipelineRun",
1412            Self::RepositoryCreated030(_) => "",
1413            Self::RepositoryCreated011(_) => "repository",
1414            Self::RepositoryCreated020(_) => "repository",
1415            Self::RepositoryDeleted030(_) => "",
1416            Self::RepositoryDeleted011(_) => "repository",
1417            Self::RepositoryDeleted020(_) => "repository",
1418            Self::RepositoryModified030(_) => "",
1419            Self::RepositoryModified011(_) => "repository",
1420            Self::RepositoryModified020(_) => "repository",
1421            Self::ServiceDeployed030(_) => "",
1422            Self::ServiceDeployed011(_) => "service",
1423            Self::ServiceDeployed020(_) => "service",
1424            Self::ServicePublished030(_) => "",
1425            Self::ServicePublished011(_) => "service",
1426            Self::ServicePublished020(_) => "service",
1427            Self::ServiceRemoved030(_) => "",
1428            Self::ServiceRemoved011(_) => "service",
1429            Self::ServiceRemoved020(_) => "service",
1430            Self::ServiceRolledback030(_) => "",
1431            Self::ServiceRolledback011(_) => "service",
1432            Self::ServiceRolledback020(_) => "service",
1433            Self::ServiceUpgraded030(_) => "",
1434            Self::ServiceUpgraded011(_) => "service",
1435            Self::ServiceUpgraded020(_) => "service",
1436            Self::TaskrunFinished030(_) => "",
1437            Self::TaskrunFinished011(_) => "taskRun",
1438            Self::TaskrunFinished020(_) => "taskRun",
1439            Self::TaskrunStarted030(_) => "",
1440            Self::TaskrunStarted011(_) => "taskRun",
1441            Self::TaskrunStarted020(_) => "taskRun",
1442            Self::TestcaserunFinished030(_) => "",
1443            Self::TestcaserunFinished010(_) => "testCaseRun",
1444            Self::TestcaserunFinished020(_) => "testCaseRun",
1445            Self::TestcaserunQueued030(_) => "",
1446            Self::TestcaserunQueued010(_) => "testCaseRun",
1447            Self::TestcaserunQueued020(_) => "testCaseRun",
1448            Self::TestcaserunSkipped020(_) => "",
1449            Self::TestcaserunSkipped010(_) => "testCaseRun",
1450            Self::TestcaserunStarted030(_) => "",
1451            Self::TestcaserunStarted010(_) => "testCaseRun",
1452            Self::TestcaserunStarted020(_) => "testCaseRun",
1453            Self::TestoutputPublished030(_) => "",
1454            Self::TestoutputPublished010(_) => "testOutput",
1455            Self::TestoutputPublished020(_) => "testOutput",
1456            Self::TestsuiterunFinished030(_) => "",
1457            Self::TestsuiterunFinished010(_) => "testSuiteRun",
1458            Self::TestsuiterunFinished020(_) => "testSuiteRun",
1459            Self::TestsuiterunQueued030(_) => "",
1460            Self::TestsuiterunQueued010(_) => "testSuiteRun",
1461            Self::TestsuiterunQueued020(_) => "testSuiteRun",
1462            Self::TestsuiterunStarted030(_) => "",
1463            Self::TestsuiterunStarted010(_) => "testSuiteRun",
1464            Self::TestsuiterunStarted020(_) => "testSuiteRun",
1465            Self::TicketClosed020(_) => "ticket",
1466            Self::TicketClosed010(_) => "ticket",
1467            Self::TicketCreated020(_) => "",
1468            Self::TicketCreated010(_) => "ticket",
1469            Self::TicketUpdated020(_) => "",
1470            Self::TicketUpdated010(_) => "ticket",
1471            Self::Custom{ty, ..} => ty.split('.').nth(2).unwrap_or_default(),
1472        }
1473    }
1474
1475    pub fn predicate(&self) -> &str {
1476        match self {
1477            Self::ApprovalClosed010(_) => "closed",
1478            Self::ApprovalCreated010(_) => "created",
1479            Self::ApprovalUpdated010(_) => "updated",
1480            Self::ArtifactDeleted020(_) => "deleted",
1481            Self::ArtifactDeleted010(_) => "deleted",
1482            Self::ArtifactDownloaded020(_) => "downloaded",
1483            Self::ArtifactDownloaded010(_) => "downloaded",
1484            Self::ArtifactPackaged030(_) => "packaged",
1485            Self::ArtifactPackaged011(_) => "packaged",
1486            Self::ArtifactPackaged020(_) => "packaged",
1487            Self::ArtifactPublished030(_) => "published",
1488            Self::ArtifactPublished011(_) => "published",
1489            Self::ArtifactPublished020(_) => "published",
1490            Self::ArtifactSigned030(_) => "signed",
1491            Self::ArtifactSigned010(_) => "signed",
1492            Self::ArtifactSigned020(_) => "signed",
1493            Self::BranchCreated030(_) => "created",
1494            Self::BranchCreated012(_) => "created",
1495            Self::BranchCreated020(_) => "created",
1496            Self::BranchDeleted030(_) => "deleted",
1497            Self::BranchDeleted012(_) => "deleted",
1498            Self::BranchDeleted020(_) => "deleted",
1499            Self::BuildFinished030(_) => "finished",
1500            Self::BuildFinished011(_) => "finished",
1501            Self::BuildFinished020(_) => "finished",
1502            Self::BuildQueued030(_) => "queued",
1503            Self::BuildQueued011(_) => "queued",
1504            Self::BuildQueued020(_) => "queued",
1505            Self::BuildStarted030(_) => "started",
1506            Self::BuildStarted011(_) => "started",
1507            Self::BuildStarted020(_) => "started",
1508            Self::ChangeAbandoned030(_) => "abandoned",
1509            Self::ChangeAbandoned012(_) => "abandoned",
1510            Self::ChangeAbandoned020(_) => "abandoned",
1511            Self::ChangeCreated040(_) => "created",
1512            Self::ChangeCreated012(_) => "created",
1513            Self::ChangeCreated030(_) => "created",
1514            Self::ChangeMerged030(_) => "merged",
1515            Self::ChangeMerged012(_) => "merged",
1516            Self::ChangeMerged020(_) => "merged",
1517            Self::ChangeReviewed030(_) => "reviewed",
1518            Self::ChangeReviewed012(_) => "reviewed",
1519            Self::ChangeReviewed020(_) => "reviewed",
1520            Self::ChangeUpdated030(_) => "updated",
1521            Self::ChangeUpdated012(_) => "updated",
1522            Self::ChangeUpdated020(_) => "updated",
1523            Self::EnvironmentCreated030(_) => "created",
1524            Self::EnvironmentCreated011(_) => "created",
1525            Self::EnvironmentCreated020(_) => "created",
1526            Self::EnvironmentDeleted030(_) => "deleted",
1527            Self::EnvironmentDeleted011(_) => "deleted",
1528            Self::EnvironmentDeleted020(_) => "deleted",
1529            Self::EnvironmentModified030(_) => "modified",
1530            Self::EnvironmentModified011(_) => "modified",
1531            Self::EnvironmentModified020(_) => "modified",
1532            Self::IncidentDetected030(_) => "detected",
1533            Self::IncidentDetected010(_) => "detected",
1534            Self::IncidentDetected020(_) => "detected",
1535            Self::IncidentReported030(_) => "reported",
1536            Self::IncidentReported010(_) => "reported",
1537            Self::IncidentReported020(_) => "reported",
1538            Self::IncidentResolved030(_) => "resolved",
1539            Self::IncidentResolved010(_) => "resolved",
1540            Self::IncidentResolved020(_) => "resolved",
1541            Self::PipelinerunFinished030(_) => "finished",
1542            Self::PipelinerunFinished011(_) => "finished",
1543            Self::PipelinerunFinished020(_) => "finished",
1544            Self::PipelinerunQueued030(_) => "queued",
1545            Self::PipelinerunQueued011(_) => "queued",
1546            Self::PipelinerunQueued020(_) => "queued",
1547            Self::PipelinerunStarted030(_) => "started",
1548            Self::PipelinerunStarted011(_) => "started",
1549            Self::PipelinerunStarted020(_) => "started",
1550            Self::RepositoryCreated030(_) => "created",
1551            Self::RepositoryCreated011(_) => "created",
1552            Self::RepositoryCreated020(_) => "created",
1553            Self::RepositoryDeleted030(_) => "deleted",
1554            Self::RepositoryDeleted011(_) => "deleted",
1555            Self::RepositoryDeleted020(_) => "deleted",
1556            Self::RepositoryModified030(_) => "modified",
1557            Self::RepositoryModified011(_) => "modified",
1558            Self::RepositoryModified020(_) => "modified",
1559            Self::ServiceDeployed030(_) => "deployed",
1560            Self::ServiceDeployed011(_) => "deployed",
1561            Self::ServiceDeployed020(_) => "deployed",
1562            Self::ServicePublished030(_) => "published",
1563            Self::ServicePublished011(_) => "published",
1564            Self::ServicePublished020(_) => "published",
1565            Self::ServiceRemoved030(_) => "removed",
1566            Self::ServiceRemoved011(_) => "removed",
1567            Self::ServiceRemoved020(_) => "removed",
1568            Self::ServiceRolledback030(_) => "rolledback",
1569            Self::ServiceRolledback011(_) => "rolledback",
1570            Self::ServiceRolledback020(_) => "rolledback",
1571            Self::ServiceUpgraded030(_) => "upgraded",
1572            Self::ServiceUpgraded011(_) => "upgraded",
1573            Self::ServiceUpgraded020(_) => "upgraded",
1574            Self::TaskrunFinished030(_) => "finished",
1575            Self::TaskrunFinished011(_) => "finished",
1576            Self::TaskrunFinished020(_) => "finished",
1577            Self::TaskrunStarted030(_) => "started",
1578            Self::TaskrunStarted011(_) => "started",
1579            Self::TaskrunStarted020(_) => "started",
1580            Self::TestcaserunFinished030(_) => "finished",
1581            Self::TestcaserunFinished010(_) => "finished",
1582            Self::TestcaserunFinished020(_) => "finished",
1583            Self::TestcaserunQueued030(_) => "queued",
1584            Self::TestcaserunQueued010(_) => "queued",
1585            Self::TestcaserunQueued020(_) => "queued",
1586            Self::TestcaserunSkipped020(_) => "skipped",
1587            Self::TestcaserunSkipped010(_) => "skipped",
1588            Self::TestcaserunStarted030(_) => "started",
1589            Self::TestcaserunStarted010(_) => "started",
1590            Self::TestcaserunStarted020(_) => "started",
1591            Self::TestoutputPublished030(_) => "published",
1592            Self::TestoutputPublished010(_) => "published",
1593            Self::TestoutputPublished020(_) => "published",
1594            Self::TestsuiterunFinished030(_) => "finished",
1595            Self::TestsuiterunFinished010(_) => "finished",
1596            Self::TestsuiterunFinished020(_) => "finished",
1597            Self::TestsuiterunQueued030(_) => "queued",
1598            Self::TestsuiterunQueued010(_) => "queued",
1599            Self::TestsuiterunQueued020(_) => "queued",
1600            Self::TestsuiterunStarted030(_) => "started",
1601            Self::TestsuiterunStarted010(_) => "started",
1602            Self::TestsuiterunStarted020(_) => "started",
1603            Self::TicketClosed020(_) => "closed",
1604            Self::TicketClosed010(_) => "closed",
1605            Self::TicketCreated020(_) => "created",
1606            Self::TicketCreated010(_) => "created",
1607            Self::TicketUpdated020(_) => "updated",
1608            Self::TicketUpdated010(_) => "updated",
1609            Self::Custom{ty, ..} => ty.split('.').nth(3).unwrap_or_default(),
1610        }
1611    }
1612}
1613
1614/// Due to inconstency in case/format the subject could be not be extracted from the context.type (ty), jsonshema $id, spec filename (shema, examples)
1615/// Custom type are not supported
1616pub fn extract_subject_predicate(ty: &str) -> Option<(&str, &str)>{
1617    // let mut split = ty.split('.');
1618    match ty {
1619        ARTIFACT_DELETED_0_1_0 => Some(("artifact", "deleted")),
1620        ARTIFACT_DOWNLOADED_0_1_0 => Some(("artifact", "downloaded")),
1621        ARTIFACT_PACKAGED_0_1_1 => Some(("artifact", "packaged")),
1622        ARTIFACT_PACKAGED_0_2_0 => Some(("artifact", "packaged")),
1623        ARTIFACT_PUBLISHED_0_1_1 => Some(("artifact", "published")),
1624        ARTIFACT_PUBLISHED_0_2_0 => Some(("artifact", "published")),
1625        ARTIFACT_SIGNED_0_1_0 => Some(("artifact", "signed")),
1626        ARTIFACT_SIGNED_0_2_0 => Some(("artifact", "signed")),
1627        BRANCH_CREATED_0_1_2 => Some(("branch", "created")),
1628        BRANCH_CREATED_0_2_0 => Some(("branch", "created")),
1629        BRANCH_DELETED_0_1_2 => Some(("branch", "deleted")),
1630        BRANCH_DELETED_0_2_0 => Some(("branch", "deleted")),
1631        BUILD_FINISHED_0_1_1 => Some(("build", "finished")),
1632        BUILD_FINISHED_0_2_0 => Some(("build", "finished")),
1633        BUILD_QUEUED_0_1_1 => Some(("build", "queued")),
1634        BUILD_QUEUED_0_2_0 => Some(("build", "queued")),
1635        BUILD_STARTED_0_1_1 => Some(("build", "started")),
1636        BUILD_STARTED_0_2_0 => Some(("build", "started")),
1637        CHANGE_ABANDONED_0_1_2 => Some(("change", "abandoned")),
1638        CHANGE_ABANDONED_0_2_0 => Some(("change", "abandoned")),
1639        CHANGE_CREATED_0_1_2 => Some(("change", "created")),
1640        CHANGE_CREATED_0_3_0 => Some(("change", "created")),
1641        CHANGE_MERGED_0_1_2 => Some(("change", "merged")),
1642        CHANGE_MERGED_0_2_0 => Some(("change", "merged")),
1643        CHANGE_REVIEWED_0_1_2 => Some(("change", "reviewed")),
1644        CHANGE_REVIEWED_0_2_0 => Some(("change", "reviewed")),
1645        CHANGE_UPDATED_0_1_2 => Some(("change", "updated")),
1646        CHANGE_UPDATED_0_2_0 => Some(("change", "updated")),
1647        ENVIRONMENT_CREATED_0_1_1 => Some(("environment", "created")),
1648        ENVIRONMENT_CREATED_0_2_0 => Some(("environment", "created")),
1649        ENVIRONMENT_DELETED_0_1_1 => Some(("environment", "deleted")),
1650        ENVIRONMENT_DELETED_0_2_0 => Some(("environment", "deleted")),
1651        ENVIRONMENT_MODIFIED_0_1_1 => Some(("environment", "modified")),
1652        ENVIRONMENT_MODIFIED_0_2_0 => Some(("environment", "modified")),
1653        INCIDENT_DETECTED_0_1_0 => Some(("incident", "detected")),
1654        INCIDENT_DETECTED_0_2_0 => Some(("incident", "detected")),
1655        INCIDENT_REPORTED_0_1_0 => Some(("incident", "reported")),
1656        INCIDENT_REPORTED_0_2_0 => Some(("incident", "reported")),
1657        INCIDENT_RESOLVED_0_1_0 => Some(("incident", "resolved")),
1658        INCIDENT_RESOLVED_0_2_0 => Some(("incident", "resolved")),
1659        PIPELINERUN_FINISHED_0_1_1 => Some(("pipelineRun", "finished")),
1660        PIPELINERUN_FINISHED_0_2_0 => Some(("pipelineRun", "finished")),
1661        PIPELINERUN_QUEUED_0_1_1 => Some(("pipelineRun", "queued")),
1662        PIPELINERUN_QUEUED_0_2_0 => Some(("pipelineRun", "queued")),
1663        PIPELINERUN_STARTED_0_1_1 => Some(("pipelineRun", "started")),
1664        PIPELINERUN_STARTED_0_2_0 => Some(("pipelineRun", "started")),
1665        REPOSITORY_CREATED_0_1_1 => Some(("repository", "created")),
1666        REPOSITORY_CREATED_0_2_0 => Some(("repository", "created")),
1667        REPOSITORY_DELETED_0_1_1 => Some(("repository", "deleted")),
1668        REPOSITORY_DELETED_0_2_0 => Some(("repository", "deleted")),
1669        REPOSITORY_MODIFIED_0_1_1 => Some(("repository", "modified")),
1670        REPOSITORY_MODIFIED_0_2_0 => Some(("repository", "modified")),
1671        SERVICE_DEPLOYED_0_1_1 => Some(("service", "deployed")),
1672        SERVICE_DEPLOYED_0_2_0 => Some(("service", "deployed")),
1673        SERVICE_PUBLISHED_0_1_1 => Some(("service", "published")),
1674        SERVICE_PUBLISHED_0_2_0 => Some(("service", "published")),
1675        SERVICE_REMOVED_0_1_1 => Some(("service", "removed")),
1676        SERVICE_REMOVED_0_2_0 => Some(("service", "removed")),
1677        SERVICE_ROLLEDBACK_0_1_1 => Some(("service", "rolledback")),
1678        SERVICE_ROLLEDBACK_0_2_0 => Some(("service", "rolledback")),
1679        SERVICE_UPGRADED_0_1_1 => Some(("service", "upgraded")),
1680        SERVICE_UPGRADED_0_2_0 => Some(("service", "upgraded")),
1681        TASKRUN_FINISHED_0_1_1 => Some(("taskRun", "finished")),
1682        TASKRUN_FINISHED_0_2_0 => Some(("taskRun", "finished")),
1683        TASKRUN_STARTED_0_1_1 => Some(("taskRun", "started")),
1684        TASKRUN_STARTED_0_2_0 => Some(("taskRun", "started")),
1685        TESTCASERUN_FINISHED_0_1_0 => Some(("testCaseRun", "finished")),
1686        TESTCASERUN_FINISHED_0_2_0 => Some(("testCaseRun", "finished")),
1687        TESTCASERUN_QUEUED_0_1_0 => Some(("testCaseRun", "queued")),
1688        TESTCASERUN_QUEUED_0_2_0 => Some(("testCaseRun", "queued")),
1689        TESTCASERUN_SKIPPED_0_1_0 => Some(("testCaseRun", "skipped")),
1690        TESTCASERUN_STARTED_0_1_0 => Some(("testCaseRun", "started")),
1691        TESTCASERUN_STARTED_0_2_0 => Some(("testCaseRun", "started")),
1692        TESTOUTPUT_PUBLISHED_0_1_0 => Some(("testOutput", "published")),
1693        TESTOUTPUT_PUBLISHED_0_2_0 => Some(("testOutput", "published")),
1694        TESTSUITERUN_FINISHED_0_1_0 => Some(("testSuiteRun", "finished")),
1695        TESTSUITERUN_FINISHED_0_2_0 => Some(("testSuiteRun", "finished")),
1696        TESTSUITERUN_QUEUED_0_1_0 => Some(("testSuiteRun", "queued")),
1697        TESTSUITERUN_QUEUED_0_2_0 => Some(("testSuiteRun", "queued")),
1698        TESTSUITERUN_STARTED_0_1_0 => Some(("testSuiteRun", "started")),
1699        TESTSUITERUN_STARTED_0_2_0 => Some(("testSuiteRun", "started")),
1700        TICKET_CLOSED_0_1_0 => Some(("ticket", "closed")),
1701        TICKET_CREATED_0_1_0 => Some(("ticket", "created")),
1702        TICKET_UPDATED_0_1_0 => Some(("ticket", "updated")),
1703        _ => None,
1704    }
1705}
1706
1707/// Due to inconstency in case/format the subject could be not be extracted from the context.type (ty), jsonshema $id, spec filename (shema, examples)
1708/// Custom type are not supported
1709pub(crate) fn new_context(ty: &str) -> crate::context::ContextEnum {
1710    use crate::context::{ContextEnum, Context_0_3, Context_0_4, Context_0_5};
1711    match ty {
1712        ARTIFACT_DELETED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1713        ARTIFACT_DOWNLOADED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1714        ARTIFACT_PACKAGED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1715        ARTIFACT_PACKAGED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1716        ARTIFACT_PUBLISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1717        ARTIFACT_PUBLISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1718        ARTIFACT_SIGNED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1719        ARTIFACT_SIGNED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1720        BRANCH_CREATED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1721        BRANCH_CREATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1722        BRANCH_DELETED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1723        BRANCH_DELETED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1724        BUILD_FINISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1725        BUILD_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1726        BUILD_QUEUED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1727        BUILD_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1728        BUILD_STARTED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1729        BUILD_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1730        CHANGE_ABANDONED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1731        CHANGE_ABANDONED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1732        CHANGE_CREATED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1733        CHANGE_CREATED_0_3_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1734        CHANGE_MERGED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1735        CHANGE_MERGED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1736        CHANGE_REVIEWED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1737        CHANGE_REVIEWED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1738        CHANGE_UPDATED_0_1_2 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1739        CHANGE_UPDATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1740        ENVIRONMENT_CREATED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1741        ENVIRONMENT_CREATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1742        ENVIRONMENT_DELETED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1743        ENVIRONMENT_DELETED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1744        ENVIRONMENT_MODIFIED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1745        ENVIRONMENT_MODIFIED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1746        INCIDENT_DETECTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1747        INCIDENT_DETECTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1748        INCIDENT_REPORTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1749        INCIDENT_REPORTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1750        INCIDENT_RESOLVED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1751        INCIDENT_RESOLVED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1752        PIPELINERUN_FINISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1753        PIPELINERUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1754        PIPELINERUN_QUEUED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1755        PIPELINERUN_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1756        PIPELINERUN_STARTED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1757        PIPELINERUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1758        REPOSITORY_CREATED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1759        REPOSITORY_CREATED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1760        REPOSITORY_DELETED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1761        REPOSITORY_DELETED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1762        REPOSITORY_MODIFIED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1763        REPOSITORY_MODIFIED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1764        SERVICE_DEPLOYED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1765        SERVICE_DEPLOYED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1766        SERVICE_PUBLISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1767        SERVICE_PUBLISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1768        SERVICE_REMOVED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1769        SERVICE_REMOVED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1770        SERVICE_ROLLEDBACK_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1771        SERVICE_ROLLEDBACK_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1772        SERVICE_UPGRADED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1773        SERVICE_UPGRADED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1774        TASKRUN_FINISHED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1775        TASKRUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1776        TASKRUN_STARTED_0_1_1 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1777        TASKRUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1778        TESTCASERUN_FINISHED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1779        TESTCASERUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1780        TESTCASERUN_QUEUED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1781        TESTCASERUN_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1782        TESTCASERUN_SKIPPED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1783        TESTCASERUN_STARTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1784        TESTCASERUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1785        TESTOUTPUT_PUBLISHED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1786        TESTOUTPUT_PUBLISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1787        TESTSUITERUN_FINISHED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1788        TESTSUITERUN_FINISHED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1789        TESTSUITERUN_QUEUED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1790        TESTSUITERUN_QUEUED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1791        TESTSUITERUN_STARTED_0_1_0 => ContextEnum::Context_0_3(Context_0_3::new(ty.into())),
1792        TESTSUITERUN_STARTED_0_2_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1793        TICKET_CLOSED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1794        TICKET_CREATED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1795        TICKET_UPDATED_0_1_0 => ContextEnum::Context_0_4(Context_0_4::new(ty.into())),
1796        _ => ContextEnum::Context_0_5(Context_0_5::new(ty.into())),
1797    }
1798}
1799
1800impl From<approval_closed_0_1_0::Content> for Content {
1801    fn from(value: approval_closed_0_1_0::Content) -> Self {
1802        Self::ApprovalClosed010(value)
1803    }
1804}
1805impl From<approval_created_0_1_0::Content> for Content {
1806    fn from(value: approval_created_0_1_0::Content) -> Self {
1807        Self::ApprovalCreated010(value)
1808    }
1809}
1810impl From<approval_updated_0_1_0::Content> for Content {
1811    fn from(value: approval_updated_0_1_0::Content) -> Self {
1812        Self::ApprovalUpdated010(value)
1813    }
1814}
1815impl From<artifact_deleted_0_2_0::Content> for Content {
1816    fn from(value: artifact_deleted_0_2_0::Content) -> Self {
1817        Self::ArtifactDeleted020(value)
1818    }
1819}
1820impl From<artifact_deleted_0_1_0::Content> for Content {
1821    fn from(value: artifact_deleted_0_1_0::Content) -> Self {
1822        Self::ArtifactDeleted010(value)
1823    }
1824}
1825impl From<artifact_downloaded_0_2_0::Content> for Content {
1826    fn from(value: artifact_downloaded_0_2_0::Content) -> Self {
1827        Self::ArtifactDownloaded020(value)
1828    }
1829}
1830impl From<artifact_downloaded_0_1_0::Content> for Content {
1831    fn from(value: artifact_downloaded_0_1_0::Content) -> Self {
1832        Self::ArtifactDownloaded010(value)
1833    }
1834}
1835impl From<artifact_packaged_0_3_0::Content> for Content {
1836    fn from(value: artifact_packaged_0_3_0::Content) -> Self {
1837        Self::ArtifactPackaged030(value)
1838    }
1839}
1840impl From<artifact_packaged_0_1_1::Content> for Content {
1841    fn from(value: artifact_packaged_0_1_1::Content) -> Self {
1842        Self::ArtifactPackaged011(value)
1843    }
1844}
1845impl From<artifact_packaged_0_2_0::Content> for Content {
1846    fn from(value: artifact_packaged_0_2_0::Content) -> Self {
1847        Self::ArtifactPackaged020(value)
1848    }
1849}
1850impl From<artifact_published_0_3_0::Content> for Content {
1851    fn from(value: artifact_published_0_3_0::Content) -> Self {
1852        Self::ArtifactPublished030(value)
1853    }
1854}
1855impl From<artifact_published_0_1_1::Content> for Content {
1856    fn from(value: artifact_published_0_1_1::Content) -> Self {
1857        Self::ArtifactPublished011(value)
1858    }
1859}
1860impl From<artifact_published_0_2_0::Content> for Content {
1861    fn from(value: artifact_published_0_2_0::Content) -> Self {
1862        Self::ArtifactPublished020(value)
1863    }
1864}
1865impl From<artifact_signed_0_3_0::Content> for Content {
1866    fn from(value: artifact_signed_0_3_0::Content) -> Self {
1867        Self::ArtifactSigned030(value)
1868    }
1869}
1870impl From<artifact_signed_0_1_0::Content> for Content {
1871    fn from(value: artifact_signed_0_1_0::Content) -> Self {
1872        Self::ArtifactSigned010(value)
1873    }
1874}
1875impl From<artifact_signed_0_2_0::Content> for Content {
1876    fn from(value: artifact_signed_0_2_0::Content) -> Self {
1877        Self::ArtifactSigned020(value)
1878    }
1879}
1880impl From<branch_created_0_3_0::Content> for Content {
1881    fn from(value: branch_created_0_3_0::Content) -> Self {
1882        Self::BranchCreated030(value)
1883    }
1884}
1885impl From<branch_created_0_1_2::Content> for Content {
1886    fn from(value: branch_created_0_1_2::Content) -> Self {
1887        Self::BranchCreated012(value)
1888    }
1889}
1890impl From<branch_created_0_2_0::Content> for Content {
1891    fn from(value: branch_created_0_2_0::Content) -> Self {
1892        Self::BranchCreated020(value)
1893    }
1894}
1895impl From<branch_deleted_0_3_0::Content> for Content {
1896    fn from(value: branch_deleted_0_3_0::Content) -> Self {
1897        Self::BranchDeleted030(value)
1898    }
1899}
1900impl From<branch_deleted_0_1_2::Content> for Content {
1901    fn from(value: branch_deleted_0_1_2::Content) -> Self {
1902        Self::BranchDeleted012(value)
1903    }
1904}
1905impl From<branch_deleted_0_2_0::Content> for Content {
1906    fn from(value: branch_deleted_0_2_0::Content) -> Self {
1907        Self::BranchDeleted020(value)
1908    }
1909}
1910impl From<build_finished_0_3_0::Content> for Content {
1911    fn from(value: build_finished_0_3_0::Content) -> Self {
1912        Self::BuildFinished030(value)
1913    }
1914}
1915impl From<build_finished_0_1_1::Content> for Content {
1916    fn from(value: build_finished_0_1_1::Content) -> Self {
1917        Self::BuildFinished011(value)
1918    }
1919}
1920impl From<build_finished_0_2_0::Content> for Content {
1921    fn from(value: build_finished_0_2_0::Content) -> Self {
1922        Self::BuildFinished020(value)
1923    }
1924}
1925impl From<build_queued_0_3_0::Content> for Content {
1926    fn from(value: build_queued_0_3_0::Content) -> Self {
1927        Self::BuildQueued030(value)
1928    }
1929}
1930impl From<build_queued_0_1_1::Content> for Content {
1931    fn from(value: build_queued_0_1_1::Content) -> Self {
1932        Self::BuildQueued011(value)
1933    }
1934}
1935impl From<build_queued_0_2_0::Content> for Content {
1936    fn from(value: build_queued_0_2_0::Content) -> Self {
1937        Self::BuildQueued020(value)
1938    }
1939}
1940impl From<build_started_0_3_0::Content> for Content {
1941    fn from(value: build_started_0_3_0::Content) -> Self {
1942        Self::BuildStarted030(value)
1943    }
1944}
1945impl From<build_started_0_1_1::Content> for Content {
1946    fn from(value: build_started_0_1_1::Content) -> Self {
1947        Self::BuildStarted011(value)
1948    }
1949}
1950impl From<build_started_0_2_0::Content> for Content {
1951    fn from(value: build_started_0_2_0::Content) -> Self {
1952        Self::BuildStarted020(value)
1953    }
1954}
1955impl From<change_abandoned_0_3_0::Content> for Content {
1956    fn from(value: change_abandoned_0_3_0::Content) -> Self {
1957        Self::ChangeAbandoned030(value)
1958    }
1959}
1960impl From<change_abandoned_0_1_2::Content> for Content {
1961    fn from(value: change_abandoned_0_1_2::Content) -> Self {
1962        Self::ChangeAbandoned012(value)
1963    }
1964}
1965impl From<change_abandoned_0_2_0::Content> for Content {
1966    fn from(value: change_abandoned_0_2_0::Content) -> Self {
1967        Self::ChangeAbandoned020(value)
1968    }
1969}
1970impl From<change_created_0_4_0::Content> for Content {
1971    fn from(value: change_created_0_4_0::Content) -> Self {
1972        Self::ChangeCreated040(value)
1973    }
1974}
1975impl From<change_created_0_1_2::Content> for Content {
1976    fn from(value: change_created_0_1_2::Content) -> Self {
1977        Self::ChangeCreated012(value)
1978    }
1979}
1980impl From<change_created_0_3_0::Content> for Content {
1981    fn from(value: change_created_0_3_0::Content) -> Self {
1982        Self::ChangeCreated030(value)
1983    }
1984}
1985impl From<change_merged_0_3_0::Content> for Content {
1986    fn from(value: change_merged_0_3_0::Content) -> Self {
1987        Self::ChangeMerged030(value)
1988    }
1989}
1990impl From<change_merged_0_1_2::Content> for Content {
1991    fn from(value: change_merged_0_1_2::Content) -> Self {
1992        Self::ChangeMerged012(value)
1993    }
1994}
1995impl From<change_merged_0_2_0::Content> for Content {
1996    fn from(value: change_merged_0_2_0::Content) -> Self {
1997        Self::ChangeMerged020(value)
1998    }
1999}
2000impl From<change_reviewed_0_3_0::Content> for Content {
2001    fn from(value: change_reviewed_0_3_0::Content) -> Self {
2002        Self::ChangeReviewed030(value)
2003    }
2004}
2005impl From<change_reviewed_0_1_2::Content> for Content {
2006    fn from(value: change_reviewed_0_1_2::Content) -> Self {
2007        Self::ChangeReviewed012(value)
2008    }
2009}
2010impl From<change_reviewed_0_2_0::Content> for Content {
2011    fn from(value: change_reviewed_0_2_0::Content) -> Self {
2012        Self::ChangeReviewed020(value)
2013    }
2014}
2015impl From<change_updated_0_3_0::Content> for Content {
2016    fn from(value: change_updated_0_3_0::Content) -> Self {
2017        Self::ChangeUpdated030(value)
2018    }
2019}
2020impl From<change_updated_0_1_2::Content> for Content {
2021    fn from(value: change_updated_0_1_2::Content) -> Self {
2022        Self::ChangeUpdated012(value)
2023    }
2024}
2025impl From<change_updated_0_2_0::Content> for Content {
2026    fn from(value: change_updated_0_2_0::Content) -> Self {
2027        Self::ChangeUpdated020(value)
2028    }
2029}
2030impl From<environment_created_0_3_0::Content> for Content {
2031    fn from(value: environment_created_0_3_0::Content) -> Self {
2032        Self::EnvironmentCreated030(value)
2033    }
2034}
2035impl From<environment_created_0_1_1::Content> for Content {
2036    fn from(value: environment_created_0_1_1::Content) -> Self {
2037        Self::EnvironmentCreated011(value)
2038    }
2039}
2040impl From<environment_created_0_2_0::Content> for Content {
2041    fn from(value: environment_created_0_2_0::Content) -> Self {
2042        Self::EnvironmentCreated020(value)
2043    }
2044}
2045impl From<environment_deleted_0_3_0::Content> for Content {
2046    fn from(value: environment_deleted_0_3_0::Content) -> Self {
2047        Self::EnvironmentDeleted030(value)
2048    }
2049}
2050impl From<environment_deleted_0_1_1::Content> for Content {
2051    fn from(value: environment_deleted_0_1_1::Content) -> Self {
2052        Self::EnvironmentDeleted011(value)
2053    }
2054}
2055impl From<environment_deleted_0_2_0::Content> for Content {
2056    fn from(value: environment_deleted_0_2_0::Content) -> Self {
2057        Self::EnvironmentDeleted020(value)
2058    }
2059}
2060impl From<environment_modified_0_3_0::Content> for Content {
2061    fn from(value: environment_modified_0_3_0::Content) -> Self {
2062        Self::EnvironmentModified030(value)
2063    }
2064}
2065impl From<environment_modified_0_1_1::Content> for Content {
2066    fn from(value: environment_modified_0_1_1::Content) -> Self {
2067        Self::EnvironmentModified011(value)
2068    }
2069}
2070impl From<environment_modified_0_2_0::Content> for Content {
2071    fn from(value: environment_modified_0_2_0::Content) -> Self {
2072        Self::EnvironmentModified020(value)
2073    }
2074}
2075impl From<incident_detected_0_3_0::Content> for Content {
2076    fn from(value: incident_detected_0_3_0::Content) -> Self {
2077        Self::IncidentDetected030(value)
2078    }
2079}
2080impl From<incident_detected_0_1_0::Content> for Content {
2081    fn from(value: incident_detected_0_1_0::Content) -> Self {
2082        Self::IncidentDetected010(value)
2083    }
2084}
2085impl From<incident_detected_0_2_0::Content> for Content {
2086    fn from(value: incident_detected_0_2_0::Content) -> Self {
2087        Self::IncidentDetected020(value)
2088    }
2089}
2090impl From<incident_reported_0_3_0::Content> for Content {
2091    fn from(value: incident_reported_0_3_0::Content) -> Self {
2092        Self::IncidentReported030(value)
2093    }
2094}
2095impl From<incident_reported_0_1_0::Content> for Content {
2096    fn from(value: incident_reported_0_1_0::Content) -> Self {
2097        Self::IncidentReported010(value)
2098    }
2099}
2100impl From<incident_reported_0_2_0::Content> for Content {
2101    fn from(value: incident_reported_0_2_0::Content) -> Self {
2102        Self::IncidentReported020(value)
2103    }
2104}
2105impl From<incident_resolved_0_3_0::Content> for Content {
2106    fn from(value: incident_resolved_0_3_0::Content) -> Self {
2107        Self::IncidentResolved030(value)
2108    }
2109}
2110impl From<incident_resolved_0_1_0::Content> for Content {
2111    fn from(value: incident_resolved_0_1_0::Content) -> Self {
2112        Self::IncidentResolved010(value)
2113    }
2114}
2115impl From<incident_resolved_0_2_0::Content> for Content {
2116    fn from(value: incident_resolved_0_2_0::Content) -> Self {
2117        Self::IncidentResolved020(value)
2118    }
2119}
2120impl From<pipelinerun_finished_0_3_0::Content> for Content {
2121    fn from(value: pipelinerun_finished_0_3_0::Content) -> Self {
2122        Self::PipelinerunFinished030(value)
2123    }
2124}
2125impl From<pipelinerun_finished_0_1_1::Content> for Content {
2126    fn from(value: pipelinerun_finished_0_1_1::Content) -> Self {
2127        Self::PipelinerunFinished011(value)
2128    }
2129}
2130impl From<pipelinerun_finished_0_2_0::Content> for Content {
2131    fn from(value: pipelinerun_finished_0_2_0::Content) -> Self {
2132        Self::PipelinerunFinished020(value)
2133    }
2134}
2135impl From<pipelinerun_queued_0_3_0::Content> for Content {
2136    fn from(value: pipelinerun_queued_0_3_0::Content) -> Self {
2137        Self::PipelinerunQueued030(value)
2138    }
2139}
2140impl From<pipelinerun_queued_0_1_1::Content> for Content {
2141    fn from(value: pipelinerun_queued_0_1_1::Content) -> Self {
2142        Self::PipelinerunQueued011(value)
2143    }
2144}
2145impl From<pipelinerun_queued_0_2_0::Content> for Content {
2146    fn from(value: pipelinerun_queued_0_2_0::Content) -> Self {
2147        Self::PipelinerunQueued020(value)
2148    }
2149}
2150impl From<pipelinerun_started_0_3_0::Content> for Content {
2151    fn from(value: pipelinerun_started_0_3_0::Content) -> Self {
2152        Self::PipelinerunStarted030(value)
2153    }
2154}
2155impl From<pipelinerun_started_0_1_1::Content> for Content {
2156    fn from(value: pipelinerun_started_0_1_1::Content) -> Self {
2157        Self::PipelinerunStarted011(value)
2158    }
2159}
2160impl From<pipelinerun_started_0_2_0::Content> for Content {
2161    fn from(value: pipelinerun_started_0_2_0::Content) -> Self {
2162        Self::PipelinerunStarted020(value)
2163    }
2164}
2165impl From<repository_created_0_3_0::Content> for Content {
2166    fn from(value: repository_created_0_3_0::Content) -> Self {
2167        Self::RepositoryCreated030(value)
2168    }
2169}
2170impl From<repository_created_0_1_1::Content> for Content {
2171    fn from(value: repository_created_0_1_1::Content) -> Self {
2172        Self::RepositoryCreated011(value)
2173    }
2174}
2175impl From<repository_created_0_2_0::Content> for Content {
2176    fn from(value: repository_created_0_2_0::Content) -> Self {
2177        Self::RepositoryCreated020(value)
2178    }
2179}
2180impl From<repository_deleted_0_3_0::Content> for Content {
2181    fn from(value: repository_deleted_0_3_0::Content) -> Self {
2182        Self::RepositoryDeleted030(value)
2183    }
2184}
2185impl From<repository_deleted_0_1_1::Content> for Content {
2186    fn from(value: repository_deleted_0_1_1::Content) -> Self {
2187        Self::RepositoryDeleted011(value)
2188    }
2189}
2190impl From<repository_deleted_0_2_0::Content> for Content {
2191    fn from(value: repository_deleted_0_2_0::Content) -> Self {
2192        Self::RepositoryDeleted020(value)
2193    }
2194}
2195impl From<repository_modified_0_3_0::Content> for Content {
2196    fn from(value: repository_modified_0_3_0::Content) -> Self {
2197        Self::RepositoryModified030(value)
2198    }
2199}
2200impl From<repository_modified_0_1_1::Content> for Content {
2201    fn from(value: repository_modified_0_1_1::Content) -> Self {
2202        Self::RepositoryModified011(value)
2203    }
2204}
2205impl From<repository_modified_0_2_0::Content> for Content {
2206    fn from(value: repository_modified_0_2_0::Content) -> Self {
2207        Self::RepositoryModified020(value)
2208    }
2209}
2210impl From<service_deployed_0_3_0::Content> for Content {
2211    fn from(value: service_deployed_0_3_0::Content) -> Self {
2212        Self::ServiceDeployed030(value)
2213    }
2214}
2215impl From<service_deployed_0_1_1::Content> for Content {
2216    fn from(value: service_deployed_0_1_1::Content) -> Self {
2217        Self::ServiceDeployed011(value)
2218    }
2219}
2220impl From<service_deployed_0_2_0::Content> for Content {
2221    fn from(value: service_deployed_0_2_0::Content) -> Self {
2222        Self::ServiceDeployed020(value)
2223    }
2224}
2225impl From<service_published_0_3_0::Content> for Content {
2226    fn from(value: service_published_0_3_0::Content) -> Self {
2227        Self::ServicePublished030(value)
2228    }
2229}
2230impl From<service_published_0_1_1::Content> for Content {
2231    fn from(value: service_published_0_1_1::Content) -> Self {
2232        Self::ServicePublished011(value)
2233    }
2234}
2235impl From<service_published_0_2_0::Content> for Content {
2236    fn from(value: service_published_0_2_0::Content) -> Self {
2237        Self::ServicePublished020(value)
2238    }
2239}
2240impl From<service_removed_0_3_0::Content> for Content {
2241    fn from(value: service_removed_0_3_0::Content) -> Self {
2242        Self::ServiceRemoved030(value)
2243    }
2244}
2245impl From<service_removed_0_1_1::Content> for Content {
2246    fn from(value: service_removed_0_1_1::Content) -> Self {
2247        Self::ServiceRemoved011(value)
2248    }
2249}
2250impl From<service_removed_0_2_0::Content> for Content {
2251    fn from(value: service_removed_0_2_0::Content) -> Self {
2252        Self::ServiceRemoved020(value)
2253    }
2254}
2255impl From<service_rolledback_0_3_0::Content> for Content {
2256    fn from(value: service_rolledback_0_3_0::Content) -> Self {
2257        Self::ServiceRolledback030(value)
2258    }
2259}
2260impl From<service_rolledback_0_1_1::Content> for Content {
2261    fn from(value: service_rolledback_0_1_1::Content) -> Self {
2262        Self::ServiceRolledback011(value)
2263    }
2264}
2265impl From<service_rolledback_0_2_0::Content> for Content {
2266    fn from(value: service_rolledback_0_2_0::Content) -> Self {
2267        Self::ServiceRolledback020(value)
2268    }
2269}
2270impl From<service_upgraded_0_3_0::Content> for Content {
2271    fn from(value: service_upgraded_0_3_0::Content) -> Self {
2272        Self::ServiceUpgraded030(value)
2273    }
2274}
2275impl From<service_upgraded_0_1_1::Content> for Content {
2276    fn from(value: service_upgraded_0_1_1::Content) -> Self {
2277        Self::ServiceUpgraded011(value)
2278    }
2279}
2280impl From<service_upgraded_0_2_0::Content> for Content {
2281    fn from(value: service_upgraded_0_2_0::Content) -> Self {
2282        Self::ServiceUpgraded020(value)
2283    }
2284}
2285impl From<taskrun_finished_0_3_0::Content> for Content {
2286    fn from(value: taskrun_finished_0_3_0::Content) -> Self {
2287        Self::TaskrunFinished030(value)
2288    }
2289}
2290impl From<taskrun_finished_0_1_1::Content> for Content {
2291    fn from(value: taskrun_finished_0_1_1::Content) -> Self {
2292        Self::TaskrunFinished011(value)
2293    }
2294}
2295impl From<taskrun_finished_0_2_0::Content> for Content {
2296    fn from(value: taskrun_finished_0_2_0::Content) -> Self {
2297        Self::TaskrunFinished020(value)
2298    }
2299}
2300impl From<taskrun_started_0_3_0::Content> for Content {
2301    fn from(value: taskrun_started_0_3_0::Content) -> Self {
2302        Self::TaskrunStarted030(value)
2303    }
2304}
2305impl From<taskrun_started_0_1_1::Content> for Content {
2306    fn from(value: taskrun_started_0_1_1::Content) -> Self {
2307        Self::TaskrunStarted011(value)
2308    }
2309}
2310impl From<taskrun_started_0_2_0::Content> for Content {
2311    fn from(value: taskrun_started_0_2_0::Content) -> Self {
2312        Self::TaskrunStarted020(value)
2313    }
2314}
2315impl From<testcaserun_finished_0_3_0::Content> for Content {
2316    fn from(value: testcaserun_finished_0_3_0::Content) -> Self {
2317        Self::TestcaserunFinished030(value)
2318    }
2319}
2320impl From<testcaserun_finished_0_1_0::Content> for Content {
2321    fn from(value: testcaserun_finished_0_1_0::Content) -> Self {
2322        Self::TestcaserunFinished010(value)
2323    }
2324}
2325impl From<testcaserun_finished_0_2_0::Content> for Content {
2326    fn from(value: testcaserun_finished_0_2_0::Content) -> Self {
2327        Self::TestcaserunFinished020(value)
2328    }
2329}
2330impl From<testcaserun_queued_0_3_0::Content> for Content {
2331    fn from(value: testcaserun_queued_0_3_0::Content) -> Self {
2332        Self::TestcaserunQueued030(value)
2333    }
2334}
2335impl From<testcaserun_queued_0_1_0::Content> for Content {
2336    fn from(value: testcaserun_queued_0_1_0::Content) -> Self {
2337        Self::TestcaserunQueued010(value)
2338    }
2339}
2340impl From<testcaserun_queued_0_2_0::Content> for Content {
2341    fn from(value: testcaserun_queued_0_2_0::Content) -> Self {
2342        Self::TestcaserunQueued020(value)
2343    }
2344}
2345impl From<testcaserun_skipped_0_2_0::Content> for Content {
2346    fn from(value: testcaserun_skipped_0_2_0::Content) -> Self {
2347        Self::TestcaserunSkipped020(value)
2348    }
2349}
2350impl From<testcaserun_skipped_0_1_0::Content> for Content {
2351    fn from(value: testcaserun_skipped_0_1_0::Content) -> Self {
2352        Self::TestcaserunSkipped010(value)
2353    }
2354}
2355impl From<testcaserun_started_0_3_0::Content> for Content {
2356    fn from(value: testcaserun_started_0_3_0::Content) -> Self {
2357        Self::TestcaserunStarted030(value)
2358    }
2359}
2360impl From<testcaserun_started_0_1_0::Content> for Content {
2361    fn from(value: testcaserun_started_0_1_0::Content) -> Self {
2362        Self::TestcaserunStarted010(value)
2363    }
2364}
2365impl From<testcaserun_started_0_2_0::Content> for Content {
2366    fn from(value: testcaserun_started_0_2_0::Content) -> Self {
2367        Self::TestcaserunStarted020(value)
2368    }
2369}
2370impl From<testoutput_published_0_3_0::Content> for Content {
2371    fn from(value: testoutput_published_0_3_0::Content) -> Self {
2372        Self::TestoutputPublished030(value)
2373    }
2374}
2375impl From<testoutput_published_0_1_0::Content> for Content {
2376    fn from(value: testoutput_published_0_1_0::Content) -> Self {
2377        Self::TestoutputPublished010(value)
2378    }
2379}
2380impl From<testoutput_published_0_2_0::Content> for Content {
2381    fn from(value: testoutput_published_0_2_0::Content) -> Self {
2382        Self::TestoutputPublished020(value)
2383    }
2384}
2385impl From<testsuiterun_finished_0_3_0::Content> for Content {
2386    fn from(value: testsuiterun_finished_0_3_0::Content) -> Self {
2387        Self::TestsuiterunFinished030(value)
2388    }
2389}
2390impl From<testsuiterun_finished_0_1_0::Content> for Content {
2391    fn from(value: testsuiterun_finished_0_1_0::Content) -> Self {
2392        Self::TestsuiterunFinished010(value)
2393    }
2394}
2395impl From<testsuiterun_finished_0_2_0::Content> for Content {
2396    fn from(value: testsuiterun_finished_0_2_0::Content) -> Self {
2397        Self::TestsuiterunFinished020(value)
2398    }
2399}
2400impl From<testsuiterun_queued_0_3_0::Content> for Content {
2401    fn from(value: testsuiterun_queued_0_3_0::Content) -> Self {
2402        Self::TestsuiterunQueued030(value)
2403    }
2404}
2405impl From<testsuiterun_queued_0_1_0::Content> for Content {
2406    fn from(value: testsuiterun_queued_0_1_0::Content) -> Self {
2407        Self::TestsuiterunQueued010(value)
2408    }
2409}
2410impl From<testsuiterun_queued_0_2_0::Content> for Content {
2411    fn from(value: testsuiterun_queued_0_2_0::Content) -> Self {
2412        Self::TestsuiterunQueued020(value)
2413    }
2414}
2415impl From<testsuiterun_started_0_3_0::Content> for Content {
2416    fn from(value: testsuiterun_started_0_3_0::Content) -> Self {
2417        Self::TestsuiterunStarted030(value)
2418    }
2419}
2420impl From<testsuiterun_started_0_1_0::Content> for Content {
2421    fn from(value: testsuiterun_started_0_1_0::Content) -> Self {
2422        Self::TestsuiterunStarted010(value)
2423    }
2424}
2425impl From<testsuiterun_started_0_2_0::Content> for Content {
2426    fn from(value: testsuiterun_started_0_2_0::Content) -> Self {
2427        Self::TestsuiterunStarted020(value)
2428    }
2429}
2430impl From<ticket_closed_0_2_0::Content> for Content {
2431    fn from(value: ticket_closed_0_2_0::Content) -> Self {
2432        Self::TicketClosed020(value)
2433    }
2434}
2435impl From<ticket_closed_0_1_0::Content> for Content {
2436    fn from(value: ticket_closed_0_1_0::Content) -> Self {
2437        Self::TicketClosed010(value)
2438    }
2439}
2440impl From<ticket_created_0_2_0::Content> for Content {
2441    fn from(value: ticket_created_0_2_0::Content) -> Self {
2442        Self::TicketCreated020(value)
2443    }
2444}
2445impl From<ticket_created_0_1_0::Content> for Content {
2446    fn from(value: ticket_created_0_1_0::Content) -> Self {
2447        Self::TicketCreated010(value)
2448    }
2449}
2450impl From<ticket_updated_0_2_0::Content> for Content {
2451    fn from(value: ticket_updated_0_2_0::Content) -> Self {
2452        Self::TicketUpdated020(value)
2453    }
2454}
2455impl From<ticket_updated_0_1_0::Content> for Content {
2456    fn from(value: ticket_updated_0_1_0::Content) -> Self {
2457        Self::TicketUpdated010(value)
2458    }
2459}
2460
2461#[cfg(feature = "testkit")]
2462impl<> proptest::arbitrary::Arbitrary for Content {
2463    type Parameters = ();
2464    type Strategy = proptest::strategy::BoxedStrategy<Self>;
2465
2466    fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy {
2467        use proptest::prelude::*;
2468        prop_oneof![
2469            any::<approval_closed_0_1_0::Content>().prop_map(Content::from),
2470            any::<approval_created_0_1_0::Content>().prop_map(Content::from),
2471            any::<approval_updated_0_1_0::Content>().prop_map(Content::from),
2472            any::<artifact_deleted_0_2_0::Content>().prop_map(Content::from),
2473            any::<artifact_deleted_0_1_0::Content>().prop_map(Content::from),
2474            any::<artifact_downloaded_0_2_0::Content>().prop_map(Content::from),
2475            any::<artifact_downloaded_0_1_0::Content>().prop_map(Content::from),
2476            any::<artifact_packaged_0_3_0::Content>().prop_map(Content::from),
2477            any::<artifact_packaged_0_1_1::Content>().prop_map(Content::from),
2478            any::<artifact_packaged_0_2_0::Content>().prop_map(Content::from),
2479            any::<artifact_published_0_3_0::Content>().prop_map(Content::from),
2480            any::<artifact_published_0_1_1::Content>().prop_map(Content::from),
2481            any::<artifact_published_0_2_0::Content>().prop_map(Content::from),
2482            any::<artifact_signed_0_3_0::Content>().prop_map(Content::from),
2483            any::<artifact_signed_0_1_0::Content>().prop_map(Content::from),
2484            any::<artifact_signed_0_2_0::Content>().prop_map(Content::from),
2485            any::<branch_created_0_3_0::Content>().prop_map(Content::from),
2486            any::<branch_created_0_1_2::Content>().prop_map(Content::from),
2487            any::<branch_created_0_2_0::Content>().prop_map(Content::from),
2488            any::<branch_deleted_0_3_0::Content>().prop_map(Content::from),
2489            any::<branch_deleted_0_1_2::Content>().prop_map(Content::from),
2490            any::<branch_deleted_0_2_0::Content>().prop_map(Content::from),
2491            any::<build_finished_0_3_0::Content>().prop_map(Content::from),
2492            any::<build_finished_0_1_1::Content>().prop_map(Content::from),
2493            any::<build_finished_0_2_0::Content>().prop_map(Content::from),
2494            any::<build_queued_0_3_0::Content>().prop_map(Content::from),
2495            any::<build_queued_0_1_1::Content>().prop_map(Content::from),
2496            any::<build_queued_0_2_0::Content>().prop_map(Content::from),
2497            any::<build_started_0_3_0::Content>().prop_map(Content::from),
2498            any::<build_started_0_1_1::Content>().prop_map(Content::from),
2499            any::<build_started_0_2_0::Content>().prop_map(Content::from),
2500            any::<change_abandoned_0_3_0::Content>().prop_map(Content::from),
2501            any::<change_abandoned_0_1_2::Content>().prop_map(Content::from),
2502            any::<change_abandoned_0_2_0::Content>().prop_map(Content::from),
2503            any::<change_created_0_4_0::Content>().prop_map(Content::from),
2504            any::<change_created_0_1_2::Content>().prop_map(Content::from),
2505            any::<change_created_0_3_0::Content>().prop_map(Content::from),
2506            any::<change_merged_0_3_0::Content>().prop_map(Content::from),
2507            any::<change_merged_0_1_2::Content>().prop_map(Content::from),
2508            any::<change_merged_0_2_0::Content>().prop_map(Content::from),
2509            any::<change_reviewed_0_3_0::Content>().prop_map(Content::from),
2510            any::<change_reviewed_0_1_2::Content>().prop_map(Content::from),
2511            any::<change_reviewed_0_2_0::Content>().prop_map(Content::from),
2512            any::<change_updated_0_3_0::Content>().prop_map(Content::from),
2513            any::<change_updated_0_1_2::Content>().prop_map(Content::from),
2514            any::<change_updated_0_2_0::Content>().prop_map(Content::from),
2515            any::<environment_created_0_3_0::Content>().prop_map(Content::from),
2516            any::<environment_created_0_1_1::Content>().prop_map(Content::from),
2517            any::<environment_created_0_2_0::Content>().prop_map(Content::from),
2518            any::<environment_deleted_0_3_0::Content>().prop_map(Content::from),
2519            any::<environment_deleted_0_1_1::Content>().prop_map(Content::from),
2520            any::<environment_deleted_0_2_0::Content>().prop_map(Content::from),
2521            any::<environment_modified_0_3_0::Content>().prop_map(Content::from),
2522            any::<environment_modified_0_1_1::Content>().prop_map(Content::from),
2523            any::<environment_modified_0_2_0::Content>().prop_map(Content::from),
2524            any::<incident_detected_0_3_0::Content>().prop_map(Content::from),
2525            any::<incident_detected_0_1_0::Content>().prop_map(Content::from),
2526            any::<incident_detected_0_2_0::Content>().prop_map(Content::from),
2527            any::<incident_reported_0_3_0::Content>().prop_map(Content::from),
2528            any::<incident_reported_0_1_0::Content>().prop_map(Content::from),
2529            any::<incident_reported_0_2_0::Content>().prop_map(Content::from),
2530            any::<incident_resolved_0_3_0::Content>().prop_map(Content::from),
2531            any::<incident_resolved_0_1_0::Content>().prop_map(Content::from),
2532            any::<incident_resolved_0_2_0::Content>().prop_map(Content::from),
2533            any::<pipelinerun_finished_0_3_0::Content>().prop_map(Content::from),
2534            any::<pipelinerun_finished_0_1_1::Content>().prop_map(Content::from),
2535            any::<pipelinerun_finished_0_2_0::Content>().prop_map(Content::from),
2536            any::<pipelinerun_queued_0_3_0::Content>().prop_map(Content::from),
2537            any::<pipelinerun_queued_0_1_1::Content>().prop_map(Content::from),
2538            any::<pipelinerun_queued_0_2_0::Content>().prop_map(Content::from),
2539            any::<pipelinerun_started_0_3_0::Content>().prop_map(Content::from),
2540            any::<pipelinerun_started_0_1_1::Content>().prop_map(Content::from),
2541            any::<pipelinerun_started_0_2_0::Content>().prop_map(Content::from),
2542            any::<repository_created_0_3_0::Content>().prop_map(Content::from),
2543            any::<repository_created_0_1_1::Content>().prop_map(Content::from),
2544            any::<repository_created_0_2_0::Content>().prop_map(Content::from),
2545            any::<repository_deleted_0_3_0::Content>().prop_map(Content::from),
2546            any::<repository_deleted_0_1_1::Content>().prop_map(Content::from),
2547            any::<repository_deleted_0_2_0::Content>().prop_map(Content::from),
2548            any::<repository_modified_0_3_0::Content>().prop_map(Content::from),
2549            any::<repository_modified_0_1_1::Content>().prop_map(Content::from),
2550            any::<repository_modified_0_2_0::Content>().prop_map(Content::from),
2551            any::<service_deployed_0_3_0::Content>().prop_map(Content::from),
2552            any::<service_deployed_0_1_1::Content>().prop_map(Content::from),
2553            any::<service_deployed_0_2_0::Content>().prop_map(Content::from),
2554            any::<service_published_0_3_0::Content>().prop_map(Content::from),
2555            any::<service_published_0_1_1::Content>().prop_map(Content::from),
2556            any::<service_published_0_2_0::Content>().prop_map(Content::from),
2557            any::<service_removed_0_3_0::Content>().prop_map(Content::from),
2558            any::<service_removed_0_1_1::Content>().prop_map(Content::from),
2559            any::<service_removed_0_2_0::Content>().prop_map(Content::from),
2560            any::<service_rolledback_0_3_0::Content>().prop_map(Content::from),
2561            any::<service_rolledback_0_1_1::Content>().prop_map(Content::from),
2562            any::<service_rolledback_0_2_0::Content>().prop_map(Content::from),
2563            any::<service_upgraded_0_3_0::Content>().prop_map(Content::from),
2564            any::<service_upgraded_0_1_1::Content>().prop_map(Content::from),
2565            any::<service_upgraded_0_2_0::Content>().prop_map(Content::from),
2566            any::<taskrun_finished_0_3_0::Content>().prop_map(Content::from),
2567            any::<taskrun_finished_0_1_1::Content>().prop_map(Content::from),
2568            any::<taskrun_finished_0_2_0::Content>().prop_map(Content::from),
2569            any::<taskrun_started_0_3_0::Content>().prop_map(Content::from),
2570            any::<taskrun_started_0_1_1::Content>().prop_map(Content::from),
2571            any::<taskrun_started_0_2_0::Content>().prop_map(Content::from),
2572            any::<testcaserun_finished_0_3_0::Content>().prop_map(Content::from),
2573            any::<testcaserun_finished_0_1_0::Content>().prop_map(Content::from),
2574            any::<testcaserun_finished_0_2_0::Content>().prop_map(Content::from),
2575            any::<testcaserun_queued_0_3_0::Content>().prop_map(Content::from),
2576            any::<testcaserun_queued_0_1_0::Content>().prop_map(Content::from),
2577            any::<testcaserun_queued_0_2_0::Content>().prop_map(Content::from),
2578            any::<testcaserun_skipped_0_2_0::Content>().prop_map(Content::from),
2579            any::<testcaserun_skipped_0_1_0::Content>().prop_map(Content::from),
2580            any::<testcaserun_started_0_3_0::Content>().prop_map(Content::from),
2581            any::<testcaserun_started_0_1_0::Content>().prop_map(Content::from),
2582            any::<testcaserun_started_0_2_0::Content>().prop_map(Content::from),
2583            any::<testoutput_published_0_3_0::Content>().prop_map(Content::from),
2584            any::<testoutput_published_0_1_0::Content>().prop_map(Content::from),
2585            any::<testoutput_published_0_2_0::Content>().prop_map(Content::from),
2586            any::<testsuiterun_finished_0_3_0::Content>().prop_map(Content::from),
2587            any::<testsuiterun_finished_0_1_0::Content>().prop_map(Content::from),
2588            any::<testsuiterun_finished_0_2_0::Content>().prop_map(Content::from),
2589            any::<testsuiterun_queued_0_3_0::Content>().prop_map(Content::from),
2590            any::<testsuiterun_queued_0_1_0::Content>().prop_map(Content::from),
2591            any::<testsuiterun_queued_0_2_0::Content>().prop_map(Content::from),
2592            any::<testsuiterun_started_0_3_0::Content>().prop_map(Content::from),
2593            any::<testsuiterun_started_0_1_0::Content>().prop_map(Content::from),
2594            any::<testsuiterun_started_0_2_0::Content>().prop_map(Content::from),
2595            any::<ticket_closed_0_2_0::Content>().prop_map(Content::from),
2596            any::<ticket_closed_0_1_0::Content>().prop_map(Content::from),
2597            any::<ticket_created_0_2_0::Content>().prop_map(Content::from),
2598            any::<ticket_created_0_1_0::Content>().prop_map(Content::from),
2599            any::<ticket_updated_0_2_0::Content>().prop_map(Content::from),
2600            any::<ticket_updated_0_1_0::Content>().prop_map(Content::from),
2601        ].boxed()
2602    }
2603}
2604
2605// #[cfg(test)]
2606// mod tests {
2607//     use super::*;
2608//
2609//     #[test]
2610//     fn test_true() {
2611//         
2612//         assert_eq!(extract_subject_predicate(APPROVAL_CLOSED_0_1_0), Some(("approval","closed")));
2613//         
2614//         assert_eq!(extract_subject_predicate(APPROVAL_CREATED_0_1_0), Some(("approval","created")));
2615//         
2616//         assert_eq!(extract_subject_predicate(APPROVAL_UPDATED_0_1_0), Some(("approval","updated")));
2617//         
2618//         assert_eq!(extract_subject_predicate(ARTIFACT_DELETED_0_2_0), Some(("artifact","deleted")));
2619//         
2620//         assert_eq!(extract_subject_predicate(ARTIFACT_DELETED_0_1_0), Some(("artifact","deleted")));
2621//         
2622//         assert_eq!(extract_subject_predicate(ARTIFACT_DOWNLOADED_0_2_0), Some(("artifact","downloaded")));
2623//         
2624//         assert_eq!(extract_subject_predicate(ARTIFACT_DOWNLOADED_0_1_0), Some(("artifact","downloaded")));
2625//         
2626//         assert_eq!(extract_subject_predicate(ARTIFACT_PACKAGED_0_3_0), Some(("artifact","packaged")));
2627//         
2628//         assert_eq!(extract_subject_predicate(ARTIFACT_PACKAGED_0_1_1), Some(("artifact","packaged")));
2629//         
2630//         assert_eq!(extract_subject_predicate(ARTIFACT_PACKAGED_0_2_0), Some(("artifact","packaged")));
2631//         
2632//         assert_eq!(extract_subject_predicate(ARTIFACT_PUBLISHED_0_3_0), Some(("artifact","published")));
2633//         
2634//         assert_eq!(extract_subject_predicate(ARTIFACT_PUBLISHED_0_1_1), Some(("artifact","published")));
2635//         
2636//         assert_eq!(extract_subject_predicate(ARTIFACT_PUBLISHED_0_2_0), Some(("artifact","published")));
2637//         
2638//         assert_eq!(extract_subject_predicate(ARTIFACT_SIGNED_0_3_0), Some(("artifact","signed")));
2639//         
2640//         assert_eq!(extract_subject_predicate(ARTIFACT_SIGNED_0_1_0), Some(("artifact","signed")));
2641//         
2642//         assert_eq!(extract_subject_predicate(ARTIFACT_SIGNED_0_2_0), Some(("artifact","signed")));
2643//         
2644//         assert_eq!(extract_subject_predicate(BRANCH_CREATED_0_3_0), Some(("branch","created")));
2645//         
2646//         assert_eq!(extract_subject_predicate(BRANCH_CREATED_0_1_2), Some(("branch","created")));
2647//         
2648//         assert_eq!(extract_subject_predicate(BRANCH_CREATED_0_2_0), Some(("branch","created")));
2649//         
2650//         assert_eq!(extract_subject_predicate(BRANCH_DELETED_0_3_0), Some(("branch","deleted")));
2651//         
2652//         assert_eq!(extract_subject_predicate(BRANCH_DELETED_0_1_2), Some(("branch","deleted")));
2653//         
2654//         assert_eq!(extract_subject_predicate(BRANCH_DELETED_0_2_0), Some(("branch","deleted")));
2655//         
2656//         assert_eq!(extract_subject_predicate(BUILD_FINISHED_0_3_0), Some(("build","finished")));
2657//         
2658//         assert_eq!(extract_subject_predicate(BUILD_FINISHED_0_1_1), Some(("build","finished")));
2659//         
2660//         assert_eq!(extract_subject_predicate(BUILD_FINISHED_0_2_0), Some(("build","finished")));
2661//         
2662//         assert_eq!(extract_subject_predicate(BUILD_QUEUED_0_3_0), Some(("build","queued")));
2663//         
2664//         assert_eq!(extract_subject_predicate(BUILD_QUEUED_0_1_1), Some(("build","queued")));
2665//         
2666//         assert_eq!(extract_subject_predicate(BUILD_QUEUED_0_2_0), Some(("build","queued")));
2667//         
2668//         assert_eq!(extract_subject_predicate(BUILD_STARTED_0_3_0), Some(("build","started")));
2669//         
2670//         assert_eq!(extract_subject_predicate(BUILD_STARTED_0_1_1), Some(("build","started")));
2671//         
2672//         assert_eq!(extract_subject_predicate(BUILD_STARTED_0_2_0), Some(("build","started")));
2673//         
2674//         assert_eq!(extract_subject_predicate(CHANGE_ABANDONED_0_3_0), Some(("change","abandoned")));
2675//         
2676//         assert_eq!(extract_subject_predicate(CHANGE_ABANDONED_0_1_2), Some(("change","abandoned")));
2677//         
2678//         assert_eq!(extract_subject_predicate(CHANGE_ABANDONED_0_2_0), Some(("change","abandoned")));
2679//         
2680//         assert_eq!(extract_subject_predicate(CHANGE_CREATED_0_4_0), Some(("change","created")));
2681//         
2682//         assert_eq!(extract_subject_predicate(CHANGE_CREATED_0_1_2), Some(("change","created")));
2683//         
2684//         assert_eq!(extract_subject_predicate(CHANGE_CREATED_0_3_0), Some(("change","created")));
2685//         
2686//         assert_eq!(extract_subject_predicate(CHANGE_MERGED_0_3_0), Some(("change","merged")));
2687//         
2688//         assert_eq!(extract_subject_predicate(CHANGE_MERGED_0_1_2), Some(("change","merged")));
2689//         
2690//         assert_eq!(extract_subject_predicate(CHANGE_MERGED_0_2_0), Some(("change","merged")));
2691//         
2692//         assert_eq!(extract_subject_predicate(CHANGE_REVIEWED_0_3_0), Some(("change","reviewed")));
2693//         
2694//         assert_eq!(extract_subject_predicate(CHANGE_REVIEWED_0_1_2), Some(("change","reviewed")));
2695//         
2696//         assert_eq!(extract_subject_predicate(CHANGE_REVIEWED_0_2_0), Some(("change","reviewed")));
2697//         
2698//         assert_eq!(extract_subject_predicate(CHANGE_UPDATED_0_3_0), Some(("change","updated")));
2699//         
2700//         assert_eq!(extract_subject_predicate(CHANGE_UPDATED_0_1_2), Some(("change","updated")));
2701//         
2702//         assert_eq!(extract_subject_predicate(CHANGE_UPDATED_0_2_0), Some(("change","updated")));
2703//         
2704//         assert_eq!(extract_subject_predicate(ENVIRONMENT_CREATED_0_3_0), Some(("environment","created")));
2705//         
2706//         assert_eq!(extract_subject_predicate(ENVIRONMENT_CREATED_0_1_1), Some(("environment","created")));
2707//         
2708//         assert_eq!(extract_subject_predicate(ENVIRONMENT_CREATED_0_2_0), Some(("environment","created")));
2709//         
2710//         assert_eq!(extract_subject_predicate(ENVIRONMENT_DELETED_0_3_0), Some(("environment","deleted")));
2711//         
2712//         assert_eq!(extract_subject_predicate(ENVIRONMENT_DELETED_0_1_1), Some(("environment","deleted")));
2713//         
2714//         assert_eq!(extract_subject_predicate(ENVIRONMENT_DELETED_0_2_0), Some(("environment","deleted")));
2715//         
2716//         assert_eq!(extract_subject_predicate(ENVIRONMENT_MODIFIED_0_3_0), Some(("environment","modified")));
2717//         
2718//         assert_eq!(extract_subject_predicate(ENVIRONMENT_MODIFIED_0_1_1), Some(("environment","modified")));
2719//         
2720//         assert_eq!(extract_subject_predicate(ENVIRONMENT_MODIFIED_0_2_0), Some(("environment","modified")));
2721//         
2722//         assert_eq!(extract_subject_predicate(INCIDENT_DETECTED_0_3_0), Some(("incident","detected")));
2723//         
2724//         assert_eq!(extract_subject_predicate(INCIDENT_DETECTED_0_1_0), Some(("incident","detected")));
2725//         
2726//         assert_eq!(extract_subject_predicate(INCIDENT_DETECTED_0_2_0), Some(("incident","detected")));
2727//         
2728//         assert_eq!(extract_subject_predicate(INCIDENT_REPORTED_0_3_0), Some(("incident","reported")));
2729//         
2730//         assert_eq!(extract_subject_predicate(INCIDENT_REPORTED_0_1_0), Some(("incident","reported")));
2731//         
2732//         assert_eq!(extract_subject_predicate(INCIDENT_REPORTED_0_2_0), Some(("incident","reported")));
2733//         
2734//         assert_eq!(extract_subject_predicate(INCIDENT_RESOLVED_0_3_0), Some(("incident","resolved")));
2735//         
2736//         assert_eq!(extract_subject_predicate(INCIDENT_RESOLVED_0_1_0), Some(("incident","resolved")));
2737//         
2738//         assert_eq!(extract_subject_predicate(INCIDENT_RESOLVED_0_2_0), Some(("incident","resolved")));
2739//         
2740//         assert_eq!(extract_subject_predicate(PIPELINERUN_FINISHED_0_3_0), Some(("pipelinerun","finished")));
2741//         
2742//         assert_eq!(extract_subject_predicate(PIPELINERUN_FINISHED_0_1_1), Some(("pipelinerun","finished")));
2743//         
2744//         assert_eq!(extract_subject_predicate(PIPELINERUN_FINISHED_0_2_0), Some(("pipelinerun","finished")));
2745//         
2746//         assert_eq!(extract_subject_predicate(PIPELINERUN_QUEUED_0_3_0), Some(("pipelinerun","queued")));
2747//         
2748//         assert_eq!(extract_subject_predicate(PIPELINERUN_QUEUED_0_1_1), Some(("pipelinerun","queued")));
2749//         
2750//         assert_eq!(extract_subject_predicate(PIPELINERUN_QUEUED_0_2_0), Some(("pipelinerun","queued")));
2751//         
2752//         assert_eq!(extract_subject_predicate(PIPELINERUN_STARTED_0_3_0), Some(("pipelinerun","started")));
2753//         
2754//         assert_eq!(extract_subject_predicate(PIPELINERUN_STARTED_0_1_1), Some(("pipelinerun","started")));
2755//         
2756//         assert_eq!(extract_subject_predicate(PIPELINERUN_STARTED_0_2_0), Some(("pipelinerun","started")));
2757//         
2758//         assert_eq!(extract_subject_predicate(REPOSITORY_CREATED_0_3_0), Some(("repository","created")));
2759//         
2760//         assert_eq!(extract_subject_predicate(REPOSITORY_CREATED_0_1_1), Some(("repository","created")));
2761//         
2762//         assert_eq!(extract_subject_predicate(REPOSITORY_CREATED_0_2_0), Some(("repository","created")));
2763//         
2764//         assert_eq!(extract_subject_predicate(REPOSITORY_DELETED_0_3_0), Some(("repository","deleted")));
2765//         
2766//         assert_eq!(extract_subject_predicate(REPOSITORY_DELETED_0_1_1), Some(("repository","deleted")));
2767//         
2768//         assert_eq!(extract_subject_predicate(REPOSITORY_DELETED_0_2_0), Some(("repository","deleted")));
2769//         
2770//         assert_eq!(extract_subject_predicate(REPOSITORY_MODIFIED_0_3_0), Some(("repository","modified")));
2771//         
2772//         assert_eq!(extract_subject_predicate(REPOSITORY_MODIFIED_0_1_1), Some(("repository","modified")));
2773//         
2774//         assert_eq!(extract_subject_predicate(REPOSITORY_MODIFIED_0_2_0), Some(("repository","modified")));
2775//         
2776//         assert_eq!(extract_subject_predicate(SERVICE_DEPLOYED_0_3_0), Some(("service","deployed")));
2777//         
2778//         assert_eq!(extract_subject_predicate(SERVICE_DEPLOYED_0_1_1), Some(("service","deployed")));
2779//         
2780//         assert_eq!(extract_subject_predicate(SERVICE_DEPLOYED_0_2_0), Some(("service","deployed")));
2781//         
2782//         assert_eq!(extract_subject_predicate(SERVICE_PUBLISHED_0_3_0), Some(("service","published")));
2783//         
2784//         assert_eq!(extract_subject_predicate(SERVICE_PUBLISHED_0_1_1), Some(("service","published")));
2785//         
2786//         assert_eq!(extract_subject_predicate(SERVICE_PUBLISHED_0_2_0), Some(("service","published")));
2787//         
2788//         assert_eq!(extract_subject_predicate(SERVICE_REMOVED_0_3_0), Some(("service","removed")));
2789//         
2790//         assert_eq!(extract_subject_predicate(SERVICE_REMOVED_0_1_1), Some(("service","removed")));
2791//         
2792//         assert_eq!(extract_subject_predicate(SERVICE_REMOVED_0_2_0), Some(("service","removed")));
2793//         
2794//         assert_eq!(extract_subject_predicate(SERVICE_ROLLEDBACK_0_3_0), Some(("service","rolledback")));
2795//         
2796//         assert_eq!(extract_subject_predicate(SERVICE_ROLLEDBACK_0_1_1), Some(("service","rolledback")));
2797//         
2798//         assert_eq!(extract_subject_predicate(SERVICE_ROLLEDBACK_0_2_0), Some(("service","rolledback")));
2799//         
2800//         assert_eq!(extract_subject_predicate(SERVICE_UPGRADED_0_3_0), Some(("service","upgraded")));
2801//         
2802//         assert_eq!(extract_subject_predicate(SERVICE_UPGRADED_0_1_1), Some(("service","upgraded")));
2803//         
2804//         assert_eq!(extract_subject_predicate(SERVICE_UPGRADED_0_2_0), Some(("service","upgraded")));
2805//         
2806//         assert_eq!(extract_subject_predicate(TASKRUN_FINISHED_0_3_0), Some(("taskrun","finished")));
2807//         
2808//         assert_eq!(extract_subject_predicate(TASKRUN_FINISHED_0_1_1), Some(("taskrun","finished")));
2809//         
2810//         assert_eq!(extract_subject_predicate(TASKRUN_FINISHED_0_2_0), Some(("taskrun","finished")));
2811//         
2812//         assert_eq!(extract_subject_predicate(TASKRUN_STARTED_0_3_0), Some(("taskrun","started")));
2813//         
2814//         assert_eq!(extract_subject_predicate(TASKRUN_STARTED_0_1_1), Some(("taskrun","started")));
2815//         
2816//         assert_eq!(extract_subject_predicate(TASKRUN_STARTED_0_2_0), Some(("taskrun","started")));
2817//         
2818//         assert_eq!(extract_subject_predicate(TESTCASERUN_FINISHED_0_3_0), Some(("testcaserun","finished")));
2819//         
2820//         assert_eq!(extract_subject_predicate(TESTCASERUN_FINISHED_0_1_0), Some(("testcaserun","finished")));
2821//         
2822//         assert_eq!(extract_subject_predicate(TESTCASERUN_FINISHED_0_2_0), Some(("testcaserun","finished")));
2823//         
2824//         assert_eq!(extract_subject_predicate(TESTCASERUN_QUEUED_0_3_0), Some(("testcaserun","queued")));
2825//         
2826//         assert_eq!(extract_subject_predicate(TESTCASERUN_QUEUED_0_1_0), Some(("testcaserun","queued")));
2827//         
2828//         assert_eq!(extract_subject_predicate(TESTCASERUN_QUEUED_0_2_0), Some(("testcaserun","queued")));
2829//         
2830//         assert_eq!(extract_subject_predicate(TESTCASERUN_SKIPPED_0_2_0), Some(("testcaserun","skipped")));
2831//         
2832//         assert_eq!(extract_subject_predicate(TESTCASERUN_SKIPPED_0_1_0), Some(("testcaserun","skipped")));
2833//         
2834//         assert_eq!(extract_subject_predicate(TESTCASERUN_STARTED_0_3_0), Some(("testcaserun","started")));
2835//         
2836//         assert_eq!(extract_subject_predicate(TESTCASERUN_STARTED_0_1_0), Some(("testcaserun","started")));
2837//         
2838//         assert_eq!(extract_subject_predicate(TESTCASERUN_STARTED_0_2_0), Some(("testcaserun","started")));
2839//         
2840//         assert_eq!(extract_subject_predicate(TESTOUTPUT_PUBLISHED_0_3_0), Some(("testoutput","published")));
2841//         
2842//         assert_eq!(extract_subject_predicate(TESTOUTPUT_PUBLISHED_0_1_0), Some(("testoutput","published")));
2843//         
2844//         assert_eq!(extract_subject_predicate(TESTOUTPUT_PUBLISHED_0_2_0), Some(("testoutput","published")));
2845//         
2846//         assert_eq!(extract_subject_predicate(TESTSUITERUN_FINISHED_0_3_0), Some(("testsuiterun","finished")));
2847//         
2848//         assert_eq!(extract_subject_predicate(TESTSUITERUN_FINISHED_0_1_0), Some(("testsuiterun","finished")));
2849//         
2850//         assert_eq!(extract_subject_predicate(TESTSUITERUN_FINISHED_0_2_0), Some(("testsuiterun","finished")));
2851//         
2852//         assert_eq!(extract_subject_predicate(TESTSUITERUN_QUEUED_0_3_0), Some(("testsuiterun","queued")));
2853//         
2854//         assert_eq!(extract_subject_predicate(TESTSUITERUN_QUEUED_0_1_0), Some(("testsuiterun","queued")));
2855//         
2856//         assert_eq!(extract_subject_predicate(TESTSUITERUN_QUEUED_0_2_0), Some(("testsuiterun","queued")));
2857//         
2858//         assert_eq!(extract_subject_predicate(TESTSUITERUN_STARTED_0_3_0), Some(("testsuiterun","started")));
2859//         
2860//         assert_eq!(extract_subject_predicate(TESTSUITERUN_STARTED_0_1_0), Some(("testsuiterun","started")));
2861//         
2862//         assert_eq!(extract_subject_predicate(TESTSUITERUN_STARTED_0_2_0), Some(("testsuiterun","started")));
2863//         
2864//         assert_eq!(extract_subject_predicate(TICKET_CLOSED_0_2_0), Some(("ticket","closed")));
2865//         
2866//         assert_eq!(extract_subject_predicate(TICKET_CLOSED_0_1_0), Some(("ticket","closed")));
2867//         
2868//         assert_eq!(extract_subject_predicate(TICKET_CREATED_0_2_0), Some(("ticket","created")));
2869//         
2870//         assert_eq!(extract_subject_predicate(TICKET_CREATED_0_1_0), Some(("ticket","created")));
2871//         
2872//         assert_eq!(extract_subject_predicate(TICKET_UPDATED_0_2_0), Some(("ticket","updated")));
2873//         
2874//         assert_eq!(extract_subject_predicate(TICKET_UPDATED_0_1_0), Some(("ticket","updated")));
2875//         
2876//     }
2877// }