cdevents_sdk/generated/
testsuiterun_started_0_2_0.rs

1// @generated
2// by cdevents/sdk-rust/generator (subject.hbs)
3
4#[cfg(feature = "testkit")] use proptest_derive::Arbitrary;
5use serde::{Serialize, Deserialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
8#[cfg_attr(feature = "testkit", derive(Arbitrary))]
9#[serde(deny_unknown_fields)]
10pub struct Content {
11    #[serde(rename = "environment",)]
12    pub environment: ContentEnvironment,
13    #[serde(rename = "testSuite", default, skip_serializing_if = "Option::is_none",)]
14    pub test_suite: Option<ContentTestSuite>,
15    #[serde(rename = "trigger", default, skip_serializing_if = "Option::is_none",)]
16    pub trigger: Option<ContentTrigger>,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
20#[cfg_attr(feature = "testkit", derive(Arbitrary))]
21#[serde(deny_unknown_fields)]
22pub struct ContentTrigger {
23    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none",)]
24    pub ty: Option<ContentTriggerType>,
25    #[serde(rename = "uri", default, skip_serializing_if = "Option::is_none",)]
26    pub uri: Option<crate::Uri>,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
30#[cfg_attr(feature = "testkit", derive(Arbitrary))]
31#[serde(deny_unknown_fields)]
32pub struct ContentTestSuite {
33    #[serde(rename = "id",)]
34    pub id: crate::Id,
35    #[serde(rename = "name", default, skip_serializing_if = "Option::is_none",)]
36    pub name: Option<String>,
37    #[serde(rename = "uri", default, skip_serializing_if = "Option::is_none",)]
38    pub uri: Option<crate::Uri>,
39    #[serde(rename = "version", default, skip_serializing_if = "Option::is_none",)]
40    pub version: Option<String>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
44#[cfg_attr(feature = "testkit", derive(Arbitrary))]
45#[serde(deny_unknown_fields)]
46pub struct ContentEnvironment {
47    #[serde(rename = "id",)]
48    pub id: crate::Id,
49    #[serde(rename = "source", default, skip_serializing_if = "Option::is_none",)]
50    pub source: Option<crate::UriReference>,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)]
54#[cfg_attr(feature = "testkit", derive(Arbitrary))]
55pub enum ContentTriggerType {
56    #[serde(rename = "manual")]
57    Manual,
58    #[serde(rename = "pipeline")]
59    Pipeline,
60    #[serde(rename = "event")]
61    Event,
62    #[serde(rename = "schedule")]
63    Schedule,
64    #[serde(rename = "other")]
65    Other,
66}
67
68#[cfg(test)]
69mod tests {
70    use proptest::prelude::*;
71    use super::*;
72
73    proptest! {
74        #[test]
75        #[cfg(feature = "testkit")]
76        fn arbitraries_are_json_valid(s in any::<Content>()) {
77            let json_str = serde_json::to_string(&s).unwrap();
78            let actual = serde_json::from_str::<Content>(&json_str).unwrap();
79            assert_eq!(s, actual);
80        }
81    }
82}